Вы находитесь на странице: 1из 123

ONLINE EXPERT MONEY MANAGER BY VALLEY FIRST

By
Angriawan Ikhromy
001200900009

A Thesis
Submitted to the Faculty of Computing
President University
In Partial Fulfillment of the Requirements
For the Degree of Bachelor of Science
In Information Technology

Cikarang, Bekasi, Indonesia


October, 2015
Copyright by
Angriawan Ikhromy
2015
ONLINE EXPERT MONEY MANAGER BY

VALLEY FIRST

By:
Angriawan Ikhromy

Approved:

_________________________________ _________________________________
Rikip Ginanjar, M. Sc Nur Hadisukmana, M.Sc
Thesis Advisor Program Head of Information Technology

_________________________________
Rila Mandala, Ph.D
Dean of Faculty of Computing
Declaration of Originality
I hereby certify that I am the sole author of this thesis and that no part of this

thesis has been published or submitted for publication.

I certify that, to the best of my knowledge, my thesis does not infringe upon

anyones copyright nor violate any proprietary rights and that any ideas, techniques,

quotations, or any other material from the work of other people included in my thesis,

published or otherwise, are fully acknowledged in accordance with the standard

referencing practices.

I declare that this is a true copy of my thesis, including any final revisions, as

approved by my thesis committee, and that this thesis has not been submitted for a

higher degree to any other University or Institution.

I have read the Thesis Regulations and I am aware of the potential

consequences of any breach of them.

Cikarang, October 2015

(Angriawan Ikhromy)
ABSTRACT

Nowadays, everyone has a variety of lifes needs, which sometimes is very

difficult to meet due to specific reasons. Such miscalculations are: unstable market

prices, rising demand, unexpected occurrences, etc. Therefore, making it difficult to

complete the previously stated needs. In other words, some people do not have the

capabilities to manage their finances, which in fact can be solved, if their purchase

history is recorded in details.

This program is designed to facilitate a person in managing his/her finances on

a daily basis. The uniqueness of this program is accessible to everyone, anywhere and

anytime via the internet. Not only managing the income statement, but it is also

designed to get the prices from the database and calculate the result, assisting the users

to estimate how much money will be spent in the future.

The end result of this program is displayed by following a specific condition

(Expenses > Income), the system calculates the data and generates the first result as a

real value based on users input. The second value will be generated as a suggestion

result which states whether income matches the purchasing capability.

i
DEDICATION

This thesis is entirely dedicated to my parents, my family, who have been my

constant source of inspiration and always giving the support to finish this thesis on time.

They have given me the motivation and discipline to tackle any task with enthusiasm

and determination. Without their love and support this project would not have been

made possible.

ii
ACKNOWLEDGEMENT

First of all, thanks to Allah SWT for His Mercy, Whose blessing gives me the

strength and courage to finish this thesis.

Apart from the efforts from me, the success of my project depends largely on

the encouragement and guidelines of many people. I take this opportunity to express

my gratitude to the people who have been instrumental in the successful completion of

this thesis. I would like to show my greatest appreciation to

1. My Family, especially for my Mother Rohmatin Nimah and my Father Ir.

Suheriyanto, MSi, for their support, courage, spirit and love. I can't say thank

you enough for their tremendous support and help. I feel motivated and

encouraged every time I go back to home and do this thesis at there. Without

his encouragement and guidance this project would not have materialized.

2. My Thesis Advisor, Mr. Rikip Ginanjar, for his support, patience, and guidance

during this thesis period.

3. All of my friends the Computing Family batch 2009, the guidance and support

who are contributing to this project, was vital for the success of the project. I

am grateful for their constant support and help.

Cikarang, October 2015

Angriawan Ikhromy

iii
TABLE OF CONTENTS

ABSTRACT .................................................................................................................... i
DEDICATION ...............................................................................................................ii
ACKNOWLEDGEMENT ........................................................................................... iii
TABLE OF CONTENTS .............................................................................................. iv
LIST OF TABLE .........................................................................................................vii
LIST OF FIGURES ................................................................................................... viii
CHAPTER I INTRODUCTION .................................................................................... 1
1.1 Background& Motivation ...............................................................................1

1.2 Problem Statement ..........................................................................................2

1.3 Thesis Objective ..............................................................................................3

1.4 Scope and Limitation ......................................................................................3

1.5 Methodology ...................................................................................................4

1.6 Thesis Outline .................................................................................................5

CHAPTER II LITERATURE STUDY .......................................................................... 6


2.1 Decision Support System ................................................................................6

2.2 Java Standard Edition ......................................................................................7

2.3 Java Enterprise Edition....................................................................................8

2.4 Hibernate (Java) ..............................................................................................8

2.5 Struts Framework ..........................................................................................10

2.5.1 Struts Components .................................................................................12

2.6 Expert System ...............................................................................................13

2.6.1 Introduction of an Expert System ..........................................................13

2.6.2 Categories of Expert System ..................................................................14

2.7 Eye Disease Diagnose Expert System .......................................................15

2.8 Valley First ....................................................................................................17

2.8.1 Managing your income ..........................................................................18

iv
2.8.2 Managing your expenses........................................................................18

2.8.3 Tips for reducing expenses ....................................................................18

CHAPTER III SYSTEM ANALYSIS ......................................................................... 19


3.1. General System Overview .............................................................................19

3.2. Functional Requirements...............................................................................20

3.3. Software Requirements .................................................................................20

3.4. System Architecture ......................................................................................21

3.4.1 System Overview ...................................................................................21

3.4.2 Use-case Diagram ..................................................................................22

3.4.3 Activity Diagram ...................................................................................31

CHAPTER IV SYSTEM DESIGN .............................................................................. 39


4.1 System Design Overview ..............................................................................39

4.1.1 Create Account ............................................................................................40

4.1.2 Validations .............................................................................................40

4.1.3 Login ......................................................................................................40

4.1.4 System Calculation ................................................................................40

4.2 User Interface Design ....................................................................................41

4.2.1 Login Page .............................................................................................42

4.2.2 Register Page .........................................................................................43

4.2.3 Main Page ..............................................................................................44

4.2.4 Main Menu .............................................................................................45

4.2.5 Email Page .............................................................................................46

4.3 Database Design ............................................................................................47

4.3.1 Table Structure .......................................................................................51

4.4 Class Diagram ...............................................................................................56

4.4.1 Controller Class Diagram ......................................................................57

v
CHAPTER V SYSTEM DEVELOPMENT ................................................................ 67
5.1 Code & Implementation ................................................................................67

5.1.1 Code Structure .......................................................................................67

5.1.2 Register Page .........................................................................................71

5.1.3 Login Page .............................................................................................76

5.1.4 Admin Page ............................................................................................78

5.1.5 Main Menu Page ....................................................................................83

5.1.6 Result Page.............................................................................................90

5.1.7 Email Page .............................................................................................91

5.1.8 Struts Configuration ...............................................................................93

CHAPTER VI EVALUATION ................................................................................... 95


6.1 Scope and Limitation ....................................................................................95

6.2 Testing Environment .....................................................................................95

6.3 Testing Scenario ............................................................................................96

6.3.1 Interface Evaluation ...............................................................................96

6.3.2 General Evaluation.................................................................................97

6.3.3 Negative Testing Scenario ...................................................................102

CHAPTER VII CONCLUSION ................................................................................ 107


7.2 Conclusion...................................................................................................107

7.2 Suggestion & Future Work .........................................................................108

REFERENCES .......................................................................................................... 109


APPENDINCES ........................................................................................................ 110

vi
LIST OF TABLE

TABLE Page
Table 3.1 Use Case Narrative - Send Email ................................................................ 24
Table 3.2: Use Case Narrative for Register Account ................................................... 25
Table 3.3: Use Case Narrative for Login ..................................................................... 26
Table 3.4: Use Case Narrative for Budgetting Proccess .............................................. 27
Table 3.5 Use Case Narrative for View Admin Unlock User ID ................................ 28
Table 3.6 Use Case Narrative for View Admin Unblock User ID .............................. 29
Table 3.7 Use Case Narrative for View Admin Block User ID................................... 30
Table 4.1 Table ACCOUNT ........................................................................................ 51
Table 4.2 Table CAR ................................................................................................... 51
Table 4.3 Table ELECTRICITY.................................................................................. 52
Table 4.4 Table ELECTRICITY_TYPE...................................................................... 52
Table 4.5 Table FUEL ................................................................................................. 52
Table 4.6 Table MOTORCYCLE ................................................................................ 53
Table 4.7 Table SCHOOL ........................................................................................... 53
Table 4.8 Table RULE ................................................................................................. 53
Table 4.9 List of Model Class with All Methods and Description .............................. 59
Table 6.1 Testing Scenario Positive Test.................................................................. 97
Table 6.2 Testing Scenario Negative Test .............................................................. 102

vii
LIST OF FIGURES

FIGURE Page
Figure 1.1: Comparison of Traditional and RAD Methodology.................................... 4
Figure 2.1: Struts Framework ...................................................................................... 11
Figure 2.2: Forward Chaingin Tree ............................................................................. 16
Figure 2.3: Q&A Interface ........................................................................................... 16
Figure 3.1: System Overview ...................................................................................... 21
Figure 3.2 Use-case Diagram ....................................................................................... 23
Figure 3.3 Activity Diagram - User Regiter Page........................................................ 32
Figure 3.4 Activity Diagram - Send Email .................................................................. 33
Figure 3.5 Activity Diagram - Login as User or Admin .............................................. 34
Figure 3.6 Activity Diagram for Budgetting Proccess................................................. 35
Figure 3.7 Activity Diagram for Admin Authority - UnLock ID ................................ 36
Figure 3.8 Activity Diagram for Admin Authority - UnBlock ID ............................... 37
Figure 3.9 Activity Diagram for Admin Authority - Block ID.................................... 38
Figure 4.1 Login Page Interface................................................................................... 42
Figure 4.2 Register Page Interface ............................................................................... 43
Figure 4.3 Main Page Interface .................................................................................... 45
Figure 4.4 Main Menu Interface .................................................................................. 45
Figure 4.5 Email Menu Feature Interface .................................................................... 46
Figure 4.6 Database Design ......................................................................................... 55
Figure 4.7 Class Diagram ............................................................................................ 56
Figure 4.8 Class Controller Part I ................................................................................ 57
Figure 4.9 Class Controller Part II ............................................................................... 58
Figure 5.1: HTML Wrap Project - Controller Structure .............................................. 68
Figure 5.2: Online Expert Money Manager Project - Controller Structure ................. 69
Figure 5.3: Online Expert Money Manager Project - View Structure ......................... 70
Figure 5.4: Online Expert Money Manager Project - View Structure ......................... 71
Figure 5.5 Register Page .............................................................................................. 72
Figure 5.6 Register Page Email Validation............................................................... 73
Figure 5.7 Register Page Email Validation Java Script Code .................................. 74
Figure 5.8 Register Page Saving Account to Database Code ................................... 75

viii
Figure 5.9 Login Page .................................................................................................. 76
Figure 5.10 Login Page Login Action Code ............................................................. 77
Figure 5.11 Admin Page .............................................................................................. 78
Figure 5.12 Admin Page - Block User ID Error Message ........................................... 79
Figure 5.13 Admin Page - UnBlock User ID ............................................................... 80
Figure 5.14 Admin Page - UnLock User ID ................................................................ 81
Figure 5.15 Admin Page - Block User ID.................................................................... 82
Figure 5.16 Main Menu Page....................................................................................... 83
Figure 5.17 Main Menu Scrapping Data................................................................... 84
Figure 5.18 Main Menu Calculate the Data .............................................................. 85
Figure 5.19 Main Menu Deduct Quantity ................................................................. 86
Figure 5.20 Main Menu Do While Logic Code ........................................................ 86
Figure 5.21 Main Menu Inside Do While Logic Code ............................................ 88
Figure 5.22 Main Menu Inquiry the Data ................................................................. 89
Figure 5.23 Main Menu Hibernate Utils ................................................................... 89
Figure 5.24 Result Page ............................................................................................... 90
Figure 5.25 Email Area ................................................................................................ 91
Figure 5.26 Email Area ................................................................................................ 92
Figure 5.27 Struts Configuration ................................................................................. 93

ix
CHAPTER I

INTRODUCTION

1.1 Background& Motivation

There are two kinds of people in respect of the way they manage their financial

condition. The first is people who balance their income and expenses by means of

keeping a detailed purchase history. Meanwhile, some other people oversee their

financial condition by carefully analyzing their record of financial spending, and match

the compiled data with their monthly expense to determine their purchasing capability.

Nothing is bad or good from these two behaviors - each has their own advantages and

disadvantages. The best method is what suits you. The most important aspect of the two

described behaviors is how people can manage their finances so that everything can be

fulfilled accordingly.

Management is an activity that is implemented in an institution or an entity, in

order to undertake activities effectively and efficiently. Thus, by means of integration

of management method, the arrangements of all daily activities to be

1
2

completed can be compiled efficiently and effectively. Without implemented

management concept, daily activities cannot be recorded effectively. A good example

is financial management. Disregarding financial management results in unintended

purchases which in turn, damages the overall financial condition. Normally, expenses

should be recorded so that the income earned from work is sufficient to fulfill needs by

managing daily expenses. If financial condition is not managed properly, then an

expected financial condition cannot be achieved.

The importance of wealth management, especially in middle class families, is

to balance the expense with the income. Proper spending of the money they earned to

be more beneficial, is necessary to manage the familys financial condition and helps

achieving financial freedom.

1.2 Problem Statement

This application is intended to give a solution for financial problems. This

application implements theory that savings should be managed properly. By using

Online Expert Money Manager by Valley First, wealth management should not be a

huge obstacle. Moreover, the system will be able to generate a recommended value

based on specific criteria to be set as a benchmark if the first recommended value is less

than 10%.

People can access this application through the internet. This application includes

features that are lightweight and easy to understand such as sending an email.
3

1.3 Thesis Objective

The objective of this thesis is to provide users with the information and

knowledge they need to support decisions and to understand the financial implications

of decisions before they are made. It also enables users to monitor their decisions for

any potential financial implications and for lessons to be learned from experience, and

to adapt or react as needed.

1.4 Scope and Limitation

The thesis focuses in developing two types of wealth manager, designated for

household budgeting and budgeting of one's monthly income. Furthermore, this

software will develop another type of money manager, for instance company salary.

The application will give the information about the type, and the description of

the item in the global market. Because of the time limit of the thesis project, it will give

only specific data, such as the car type, motorcycle type, fuel type, school fee, etc.

Therefore, this application will not display all types of goods in the global market.

The application can only receive input from either keyboard or mouse and then

it will show the field that the user have to fill in the mandatory field and optional field,

and the system will take care of the rest. This system will calculate the data from the

user input and it will show the message that your income is enough for your needs or

not.

Development of the Online Expert Money Manager by Valley First software

will be based on Java Language and implementing Data Access Object (DAO), Spring,

Struts, and also Hibernate. Since this application is accessible via internet (for now,

localhost) it will also utilize Java Server Page (JSP) to generate HTML which is already

integrated by Java codess.


4

1.5 Methodology

In order to complete the thesis, literature study is conducted so that sufficient

information and knowledge of the Hibernate, Spring Framework, and JavaEE (Java

Enterprise Edition) as the programming language can be covered prior to software

engineering.

Furthermore, the software engineering applies RAD (Rapid Application

Development), thus prototypes of the system will be produced converging to the final

working system. In this way, even in a short time-range in system analysis it will result

in a prototype/feature creation but it will be subject to changes, and accordingly produce

another prototype until it reaches the final working system matching the thesis

objective.

Figure 1.1: Comparison of Traditional and RAD Methodology

Many prototypes covering one or more features of the ideal working system will

be produced in the development. Although there will be a number of versions of the

system, they are actually converging to a point: a complete working system. In short,

the system analysis and system design will have many prototypes converging to final

working system as a result of RAD relevance.


5

1.6 Thesis Outline

The thesis outline is described as follow:

1. CHAPTER I INTRODUCTION consists of the thesis background, problem

statement, thesis objective, scope and limitation, methodology, and thesis

outline.

2. CHAPTER II LITERATURE STUDY contains theoretical knowledge

about Hibernate, Spring Framework, which is used for achieving the thesis

objectives.

3. CHAPTER III SYSTEM ANALYSIS explains the system requirements,

features, and a bit of design architecture of the system of the given

requirements.

4. CHAPTER IV: SYSTEM DESIGN explains about the design of the

application, includes about its architecture, data, interfaces, and components

for the system in a specified requirements.

5. CHAPTER V SYSTEM DEVELOPMENT contains the development and

coding of the system. This part will be described relatively to each prototype

and summarized to converge it to final working system.

6. CHAPTER VI SYSTEM TESTING is the part that evaluates and tests the

system in order to encounter any limitation of the system. The system testing

will cover mostly final working system and some prototypes that are critical

to achieving final system.

7. CHAPTER VII CONCLUSION AND FUTURE WORK includes the

conclusion obtained from the thesis, testing results, and possible future

works.
CHAPTER II

LITERATURE STUDY

2.1 Decision Support System

Decision making is the process of developing and analyzing alternatives to

make a decision - a choice from the available alternatives. Most decisions are made in

response to a problem - a discrepancy between a desirable and an actual decision and

involve judgment - the cognitive aspects of the decision-making process

A decision support system (DSS) is a computer program application that

analyzes business data and presents it so that users can make business decisions more

easily [1].

Although each group of decisions is specific in domain and time

demandingness, we can find common principles and tools for making better decisions.

Any manager can use the following techniques to overcome the barriers to effective

decision making:

Increase knowledge. A lack of experience with the problem at hand can cause

anyone to make poor decisions.

Be creative. Creativity is the process of developing original, novel responses to

a problemIt is essential for decision-making activities, such as discovering

alternatives or defining problems. Creativity can be cultivated by checking

assumptions and thinking through theprocess, step-by-step.

6
7

Use intuition. Intuition can be defined as a cognitive process whereby we

unconsciously make a decision based on accumulated knowledge and

experience.

Dont overstress the finality of the decision. Very few decisions are forever;

there is more give in decisions than we realize.

Make sure the timing is right. Managers should not let their decisions be swayed

by passing moods.

DSS include knowledge-based systems. A properly designed DSS is an

interactive software-based system intended to help decision makers compile useful

information from a combination of raw data, documents, and personal knowledge, or

business models to identify and solve problems and make decisions.

There are several benefits by using DSS which is; improves personal efficiency,

speed up the process of decision making, generates new evidence in support of a

decision and helps automate managerial processes

2.2 Java Standard Edition

Java Platform, Standard Edition or Java SE is a widely

used platform for programming in the Java language. It is the Java Platform used to

deploy portable applications for general use. In practical terms, Java SE consists of

a virtual machine, which must be used to run Java programs, together with a set

of libraries (or "packages") needed to allow the use of file systems, networks, graphical

interfaces, and so on, from within those programs [2].


8

Java Platform, Enterprise Edition (Java EE) is a related specification which

includes all of the classes in Java SE, plus a number which are more useful to programs

which run on servers as opposed to workstations.

2.3 Java Enterprise Edition

Java Platform, Enterprise Edition or Java EE is Oracle's

enterprise Java computing platform. The platform provides an API and runtime

environment for developing and running enterprise software,

including network and web services, and other large-scale, multi-tiered, scalable,

reliable, and secure network applications. Java EE extends the Java Platform,

Standard Edition (Java SE/J2SE), providing an API for object-relational mapping,

distributed and multi-tier architectures, and web services [3]. The platform

incorporates a design based largely on modular components running on an application

server. Software for Java EE is primarily developed in the Java programming language

and uses XML for configuration

2.4 Hibernate (Java)

Hibernate is an object-relational mapping (ORM) library for the Java language,

providing a framework for mapping an object-oriented domain model to a

traditional relational database. Hibernate solves object-relational impedance

mismatch problems by replacing direct persistence-related database accesses with

high-level object handling functions [4].


9

Hibernate is free software that is distributed under the GNU Lesser General

Public License. Hibernates primary feature is mapping from Java classes to database

tables (and from Java data types to SQL data types). Hibernate also provides data query

and retrieval facilities. It also generates the SQL calls and attempts to relieve the

developer from manual result set handling and object conversion and keep the

application portable to all supported SQL databases with little performance overhead.

Mapping Java classes to database tables is accomplished through the

configuration of an XML file or by using Java Annotations. When using an XML file,

Hibernate can generate skeletal source code for the persistence classes. This is

unnecessary when annotations are used. Hibernate can use the XML file or the

annotations to maintain the database schema.

Facilities to arrange one-to-many and many-to-many relationships between

classes are provided. In addition to managing associations between objects, Hibernate

can also manage reflexive associations where an object has a one-to-many relationship

with other instances of its own type.

Hibernate supports the mapping of custom value types. This makes the following

scenarios possible:

Overriding the default SQL type that Hibernate chooses when mapping a column

to a property.

Mapping Java to columns as if they were regular properties.

Mapping a single property to multiple columns.

Hibernate provides transparent persistence for Plain Old Java Objects (POJOs).

The only strict requirement for a persistent class is a no-argument constructor, not
10

necessarily public. Proper behavior in some applications also requires special attention

to the equals() and hashCode() methods.

Collections of data objects are typically stored in Java collection objects such as

Set and List. Java generics, introduced in Java 5, are supported. Hibernate can be

configured to lazy load associated collections. Lazy loading is the default as of

Hibernate 3. Related objects can be configured to cascade operations from one to the

other. For example, a parent such as an Album object can be configured to cascade its

save and/or delete operation to its child Track objects. This can reduce development

time and ensure referential integrity. A dirty checking feature avoids unnecessary

database write actions by performing SQL updates only on the modified fields of

persistent objects.

Hibernate provides an SQL inspired language called Hibernate Query

Language (HQL) which allows SQL-like queries to be written against Hibernates data

objects. Criteria Queries are provided as an object-oriented alternative to HQL.

2.5 Struts Framework

The Struts Framework is a standard for developing well-architected Web

applications [5]. It has the following features:

Open source

Based on the Model-View-Controller (MVC) design paradigm, distinctly

separating all three levels:

o Model: application state

o View: presentation of data (JSP, HTML)

o Controller: routing of the application flow


11

Implements the JSP Model 2 Architecture

Stores application routing information and request mapping in a single core

file, struts-config.xml

The Struts Framework, itself, only fills in the View and Controller layers. The Model

layer is left to the developer.

Figure 2.1: Struts Framework

All incoming requests are intercepted by the Struts servlet controller. The Struts

Configuration file struts-config.xml is used by the controller to determine the routing

of the flow. This flows consists of an alternation between two transitions:

1. From View to Action :

A user clicks on a link or submits a form on an HTML or JSP page. The

controller receives the request, looks up the mapping for this request, and forward it to

an action. The action turn calls a Model layer (Business layer) service or function.
12

2. From Action to View :

After the call to and underlying function or service returns to the action class,

the action forwards to a resource in the View layer and a page is displayed in a web

browser.

2.5.1 Struts Components

The Controller

This receives all incoming requests. Its primary function is the mapping of a

request URI to an action class selecting the proper application module. It's provided by

the framework.

The struts-config.xml File

This file contains all of the routing and configuration information for the Struts

application. This XML file needs to be in the WEB-INF directory of the application.

Action Classes

It's the developer's responsibility to create these classes. They act as bridges

between user-invoked URIs and business services. Actions process a request and return

an ActionForward object that identifies the next component to invoke. They're part of

the Controller layer, not the Model layer.

Action Forms

These greatly simplify user form validation by capturing user data from the

HTTP request. They act as a "firewall" between forms (Web pages) and the application

(actions). These components allow the validation of user input before proceeding to an

Action. If the input is invalid, a page with an error can be displayed.


13

2.6 Expert System

2.6.1 Introduction of an Expert System

An expert system is a computer program that can simulate the judgment and

behavior of a human or an organization that has expert knowledge and experience in a

specific field in order to help problem solving or decision-making process [7]. The

system contains a knowledge base that consists of accumulated experience and a set of

rules for applying the knowledge base to each particular situation that is described in

the program. So, the reason why this system is called expert system is caused by the

similarities of its function and role with the human consultant that allows their user or

patient to consult directly when having a problem.

In general use, the system is intended to help common people to solve their

problem from the simple until the complex problems without even the direct help from

the real expertise.

In addition, the expert system can also become the assistant for the human expertise

when doing their daily task. However, there are some factors that need to be fulfilled to

guarantee it can be categorized as an expert system [8]:

1. The system should be able to recognize and formulate the problem

2. The ability to solve the problem with rapid and precise

3. Giving the explanation for the solution

4. Learn from the experience

5. Knowledge restructure

6. Decide the relevance and the relation between the facts

7. Understand the limit of the ability


14

2.6.2 Categories of Expert System

Based on the main purpose, an expert system can be categorized into ten

different types:

Interpretation; analyze incomplete, unorganized data or facts which are done


during the censorship process.

Prediction; generating a conclusion about the impact or effect that possibly


occurs from some alternative situation given, such as weather or financial
forecasting.

Diagnose; diagnose the caused or the reason why a system fails in a complex
situation based on the symptom occurs.

Design; decide the suitable configuration from any components on a system


that will make the system work perfectly.

Planning; organize a way that should be done in order to achieve a goal from
certain starting points.

Monitoring; compare the behavior of a system to recognize any variation that


is existed within the system itself.

Debugging and repair; determine and carry out repairs to a systematic


failure.

Instructions; give any guidance related to a process on a certain field.

Control; maintain and control the work behavior of a system in a complex


environment, including interpretation, estimation, monitoring, and repair of
the work behavior itself.

Classification; decide the criteria from some categories given


15

2.7 Eye Disease Diagnose Expert System

Eye Disease Diagnose is a kind of expert system application that can diagnose

eye disease. The application will help common people to know what type of eye disease

that they had by checking the symptoms. The knowledge base is constructed from the

medical literature book and eye specialist doctor, and it will be constructed on the set

of IF-THEN rule.

The inference machine uses the forward chaining method that will associate the

facts with the existing rule and generate a conclusion from the facts. In this application,

the knowledge base is also constructed as a tree form where the left part of the tree

shows the symptom of the eye diseases while the right part of the tree is the list of the

disease. As shown in Figure 2.2, the entire existing symptom will be grouped into set

of rules based on the same goals. The existing rules on the knowledge base will be

asked to the user and continue after taking the answer response from the user. After

comes into a solution, the system will generate a conclusion that state what kind of Eye

Disease that the user had. Here is the interface of Question and Answer section as shown

in Figure 2.3.
16

Figure 2.2 Forward Chaining Tree

Figure 2.3 Q&A Interface


17

2.8 Valley First

Valley First, a division of First West Credit Union, is based in British

Columbia, Canada. Founded in Penticton in 1947 as the Penticton and District Credit

Union, Valley First was established in 1983 following a period of expansion through

the Okanagan and Similkameen valleys. Valley First continued its growth into the

Kelowna market throughout the 1990s, before amalgamating with the Armstrong

Spallumcheen Savings and Credit Union and buying the KCP Credit Union in

Kamloops in 2001. In 2008, Valley First entered into discussions with Langley-

based Envision Financial to merge with one another and develop a new financial

services organization for Western Canada. In September 2009, members at both credit

unions voted in favour of the merger proposal, and on Jan. 1, 2010, Envision Financial

and Valley First merged to become First West Credit Union. In 2013, Enderby &

District Credit Union joined First West Credit Union, followed by Island Savings Credit

Union in 2015 [9].

Key person of this Industry Financial Services is Paulette Rennie, she has more

than 30 years of financial industry experience. She started her career with Toronto

Dominion Bank where, over a 15-year period, she held various positions throughout

British Columbia.

This Industry Financial Services has financial management advice that can be a

method for this application, such as Managing your income, Managing your

expenses, Tips for reducing expenses.


18

2.8.1 Managing your income

When budgeting, make sure youre working with your net income figure (the

amount you take home after taxes) versus your gross income. Know your income

cycleif youre a seasonal employee, this will impact your cash flow throughout the

year and youll need to budget accordingly. Create a balance sheet which outlines all

your assets (savings/investments/things you own) and all your liabilities (debts). That

way, youll have a good idea what your current financial situation isthis is a great

starting point.

2.8.2 Managing your expenses

After determining how much money you or your household is bringing in each

week, it is essential to identify where it is going. By making a list of all your expenses,

you can get a good idea of what you are spending your money on. Record fixed

expenses which are typically the same each month, such as rent or mortgage, car

payments, child-care, credit card payments, and savings.

2.8.3 Tips for reducing expenses

There are some easy ways to curb your spending such as :

Reduce the totals of some of your variable expense categories, rather than

eliminating entire expense categoriesmaking small spending adjustments

across the board is easier to do.

Comparison shop services you pay for

Consider commuting and share a gas bill, or use public transportation systems.
CHAPTER III

SYSTEM ANALYSIS

3.1. General System Overview

The display will be handled by Struts and Spring algorithm model, utilizing the

JSP which already supported by Java. Web page wont use HTML or PHP directly, but

will use JavaScript (JS) instead as a web controller, supported also by generic Java

codes.

The main workflow is simple. First, user have to open browser and go to the

Online Expert Money Manager by Valley First Website. The user will see interface that

consist of field at the web. Next, they will see the interface that consists of several fields

that can be filled.

The user are free to fill out all of that field according to his/her needs. User has

to know that every field that is filled will show another field in next page with relation

to the field before. I will make this software as specifically as I can do.

After the user has finished filling in all of the text box, automatically this

program will calculate the total money that the user will spend later in that month

according user input before. The main algorithm of this software is to manipulate the

data in such a way and also using Valley First method,

19
20

so it will stay updated, wont be missing, and is available to inquiry at all time. Another

main point is how to coordinate many components of Java language, which is Java

code, JSP, JS, Database, Spring framework, Struts, Hibernate, and DAO.

3.2. Functional Requirements

In order to achieve its main objective, the system must be able to cover the

following requirements and functionalities:

1. The expert systems should be able to give brief explanations related to its

conclusion or solution generated such as how the solution is reached and

why it is considered as the best solution.

2. The system requires an active database connection.

3. The system requires an active internet connection (for RSS).

4. Users can see the detail and type of the goods that is generated by the expert

system.

5. Users should be able to fill all of the text field based on the user needs.

6. The web apps should provide two main interfaces for the user section and

the development section.

7. User can type the input in the web forms such as text field, checkbox, radio

button, and droplist.

3.3. Software Requirements

The software development requires the following software in order to engineer

the system:

1. A computer for programming with at least 2GB of RAM


21

2. Windows 7 Professional Operating System, at least 1,2GHZ processor

3. Netbeans or Eclipse IDE (with Java SDK and JRE version at least 1_5_0_17)

4. Oracle as a database storage data.

5. Local server such as Tomcat or Glassfish

6. Internet browser

And for testing phase of this software:

An electronic devices with internet browser

All of the above resources will be provided by the writer.

3.4. System Architecture

3.4.1 System Overview

Figure 3.1: System Overview

Figure 3.1 System Overview. The system overview diagram can help to identify

the flow of this system web application. As shown in figure 3.1, the system has to

perform data processing based on user input. After the data has been retrieved by the
22

system, it will send the data and querying into database, then the database give the result

based on queried data, and then the system will calculate again to give the last result.

3.4.2 Use-case Diagram

The system functionality is described graphically as a use-case diagram, the use-

case diagram descriptions will show the system behavioral upon interactions in the use-

case narratives.

System architecture is a formal view of more description and representation of

the system. In here, more views of the system will be shown, starting from the structure

until the behavior. In addition, there will be use case diagram, use case narrative, and

activity diagram shown in this section. A Use Case is a series of related interactions

between a user (more generally an actor) and a system that enables the users to

achieve a goal [6]. Use Case Diagram is a view of the system boundaries that identifies

the use case, which defined to support the solution. The Use Case diagram shows which

actors and admin interact with each use case, as defined in Figure 3.2 Use Case

Diagrams.

The Administrator has a special authority than the user. The Administrator has

authority levels UnLock ID, UnBlock ID, and Block ID, which have granted in the

Admin Page. User cant access the Admin Page because the type of ID, the programmer

has already classified when the user create an account, the type of the account will be

automatically become the user ID. The Main Page only can be access by logging first

and using ID that already registered in Register Page, but Send Email Page can be

access without create an account.


23

Figure 3.2 Use-case Diagram

Moreover use case is a narrative conversation between actors / users and

features that come as the solution. This are made to define the core elements and

processes of the system and it explains about the whole system from user point of view.

The key elements are termed as actors and the processes are termed as use cases. The

Use Case diagram shows which actors interact with each use case, as defined in Figure

3.2 Use Case Diagrams.

In order to describe the use-case diagram shown in Figure 3.2, the following

narratives should be capable of representing each case in the diagram.


24

Table 3.1 Use Case Narrative - Send Email

Use Case Name: Send Email Use Case Type

Use Case ID: Email System Analysis: []

Priority: Medium

Source: Authority for each user.

Primary Business
User
Actor:
Primary System
Application
Actor:
Other Participating
-
Actors:

Descriptions: This use case describes the user wants to send a message to the Admin

Trigger:

Actor Action System Response


Step 2: The system will display
Step 1: User open application.
Login Page.
Step 3: User Click "Click Step 4: The system will display
Here" link. Email Area.
Typical Course of
Events: Step 5: The user The
Step 6: The system will process the
user Input all of the mandatory
data and send it to the Admin Email.
textfield.
Step 8: The system will send the
Step 7: The User click button
email and admin will recieved in
"Send Email".
inbox email.

Alternate Courses: None

Conclusion: This use case shows the User send Email to the Admin
Post Condition:
Business Rules: None
Implementation
Constraints and None
Specifications:
25

Table 3.2: Use Case Narrative for Register Account

Use Case Name: User Register Use Case Type

Use Case ID: User Register System Analysis: []

Priority: High
UserRegister Use Case
Source:
Model Diagram
Primary Business
User
Actor:
Primary System Actor: System
Other Participating
-
Actors:
Descriptions: This use case describes the user want to register a new account.
Trigger:
Actor Action System Response
Step 1: User open Step 2: The system will shows the login
application. form.
Step 3: User click Step 4: The system will shows the
register new account Register Page.
Typical Course of
Events: Step 5: User input all of Step 6: The system validate the data from
the textfield the user input
Step 7: The system will store into
database the user detail

Step 8: The system will show the message


if register new account is success

Alternate Courses: None


Conclusion: This use case shows the steps of how a user register a new account
Post Condition: None
Register will be complete if data from the user input is correct, there
Business Rules:
is no problem with database, the data will inserted into database
Implementation
Constraints and None
Specifications:
26

Table 3.3: Use Case Narrative for Login

Use Case Name: Login Use Case Type


Use Case ID: Login System Analysis: []
Priority: High
LoginUse Case Model
Source:
Diagram
Primary Business
User/Admin
Actor:
Primary System
System
Actor:
Other Participating
-
Actors:
This use case describes the user want to login the website, the user have
Descriptions: to put correct and valid data according the input when the user do register
new account before.
Trigger:
Actor Action System Response
Step 1:User/Admin open
Step 2: The system shows the login form
the application
Step 3: The system will show two column
which is UserName and Password
Step 4:User/Admin input
Step 5:The system will connect to database
Typical Course of the User Name and
server
Events: Password
Step 6:The system will validate the data
and check which is Admin or User
Step 7:The system will show the
application of Online Expert Money
Manager by Valley First

Alternate Courses: None

Conclusion: This use case shows the user/Admin how to login the application.

Post Condition: The system will shows a successful result page

Login will be success if the data is correct and valid, the system will
Business Rules:
check the data to database, and redirect into Application.
Implementation
Constraints and None
Specifications:
27

Table 3.4: Use Case Narrative for Budgetting Proccess

Use Case Name: Budgetting Proccess Use Case Type

Use Case ID: budgettingProccess System Analysis: []


Priority: High
Source:
Primary Business
User
Actor:
Primary System
System
Actor:
Other Participating
-
Actors:
This use case describes the user wants to budgetting their monthly
Descriptions:
salary.
Trigger:

Actor Action System Response

Step 1:User select the menu Step 2: The system will redirect the
"Salary Management" user into salary management page
Step 3: The system will update the
database by scrapping from website
Typical Course of
Events: Step 4: The User input all of
Step 5: The system will validate the
the mandatory field and click
data and calculate it.
"Calculate my Budget"
Step 6: The system will check the
condition, if Expenses > Income, the
system will calculate for suggestion
result.
Step 7: The system will show the
result page.
Alternate Courses: None
This use case shows the steps of how a user calculate their monthly
Conclusion:
salary.
Post Condition: None
Business Rules: Calculation will be success if the user follow the rule of each field.
Implementation
Constraints and None
Specifications:
28

Table 3.5 Use Case Narrative for View Admin Unlock User ID

Use Case Name: UnLock User ID Use Case Type


Use Case ID: unlockID System Analysis: []
Priority: High

Source: Authority for Admin.


Primary Business
Admin
Actor:
Primary System
System
Actor:
Other Participating
-
Actors:

This use case describes the admin wants to do unlock the ID that
Descriptions:
already registered in database

Trigger:
Actor Action System Response

Step 1: Admin go to login page Step 2: The system will display all
and login as admin of the admin authority

Step 3: Admin choose unlock


Typical Course of ID (unlock all / unlock by ID).
Events:
Step 4: Admin click the unlock Step 5: The system will execute the
button. admin order.

Step 6: The system will show result


status, success or error.

Alternate Courses: None

Conclusion: This use case shows the Admin authority in this application.

Post Condition: None

Business Rules: The result status will depend of the Admin authority type and the input.

Implementation
Constraints and None
Specifications:
29

Table 3.6 Use Case Narrative for View Admin Unblock User ID

Use Case Name: UnBlock User ID Use Case Type


Use Case ID: unblockID System Analysis: []
Priority: High
Source: Authority for Admin.
Primary Business
Admin
Actor:
Primary System
System
Actor:
Other Participating
-
Actors:

This use case describes the admin wants to do unblock the ID that
Descriptions:
already registered in database

Trigger:
Actor Action System Response

Step 1: Admin go to login page Step 2: The system will display all
and login as admin of the admin authority

Step 3: Admin choose unblock


Typical Course of ID (unblock all / unblock by
Events: ID).

Step 4: Admin click the Step 5: The system will execute the
unblock button. admin order.

Step 6: The system will show result


status, success or error.
Alternate Courses: None
Conclusion: This use case shows the Admin authority in this application.
Post Condition: None

Business Rules: The result status will depend of the Admin authority type and the input.

Implementation
Constraints and None
Specifications:
30

Table 3.7 Use Case Narrative for View Admin Block User ID

Use Case Name: Block User ID Use Case Type


Use Case ID: blockID System Analysis: []
Priority: High
Source: Authority for Admin.
Primary Business
Admin
Actor:
Primary System
System
Actor:
Other Participating
-
Actors:
This use case describes the admin wants to do block the ID that already
Descriptions:
registered in database

Trigger:
Actor Action System Response

Step 1: Admin go to login page Step 2: The system will display all
and login as admin of the admin authority

Step 3: Admin choose block ID


Typical Course of
(block all / block by ID).
Events:

Step 4: Admin click the block Step 5: The system will execute the
button. admin order.

Step 6: The system will show result


status, success or error.
Alternate Courses: None

Conclusion: This use case shows the Admin authority in this application.

Post Condition: None

Business Rules: The result status will depend of the Admin authority type and the input.

Implementation
Constraints and None
Specifications:
31

3.4.3 Activity Diagram

Activity diagrams are graphical representations of workflows of stepwise

activities and actions with support for choice, iteration, and concurrency. Activity

diagram is basically a flow chart to represent the flow from one activity to other. The

activity can be described as an operation of the system. So the control flow is drawn

from one operation to another. This flow can be sequential, branched or concurrent.

Activity diagrams deals with all type of flow control by using different elements like

fork, join and others. This diagrams model the actions or behaviors performed by the

components of a business process of the systems.

The following figures will represent each possible interaction between actor and

system in such a way so that the interaction can be traced in a better significance.

Furthermore, each activity diagram will represent one full interaction in scope of the

system functionality.

Figure 3.3 Activity Diagram User Register, it will be used during the first time

when the user wants to login into the application. Without this process, the user cant

access the main page. In the user register page there will be some required field that

needs to be filled in order to proceed with the process. Each field has its own validation

type, such as the minimum length of username is 4 characters, the confirmation

password field must be same with password field, the format of the email must be

correct, etc. The data that user has provided will be stored into database. Regarding the

password and confirmation password, they will be encrypted by the system first and

then stored into database. From within the database we cant see the real password from

user input.
32

Figure 3.3 Activity Diagram - User Regiter Page

Figure 3.3 Activity Diagram User Register Page is used for create a

new account for this application. When the user clicks the "Create my Account"

button, the system will verify the data, whether username or email is exist on the

database or not. All of the user that is register through this page will have the

default authority as a user.


33

Figure 3.4 Activity Diagram - Send Email

Figure 3.4 Activity Diagram - Send Email, it will be used for all user

without do create a new account in the registration page. The programmer create

this menu is used if the user wants to give a suggestion, need help or complaining

about the application. This feature is one of the ways to communicate with the

administrator. The administrator will replay the message to the email address that

user already input in the Send Email Page.


34

Figure 3.5 Activity Diagram - Login as User or Admin

Figure 3.5 Activity Diagram - Login, it will be used by administrator

and user to access their own page. In general, the administrator or user has to fill

in username and password, but the system will check about the type of ID. If

identified as user, the system will redirect the user into user page. Likewise as in

the case of admin.


35

Figure 3.6 Activity Diagram for Budgetting Proccess

Figure 3.6 Activity Diagram - Budgetting Proccess, is described the flow

of the budgetting proccess for user. In this proccess, the user have to input all of

the mandatory field and then the system will validate all of the data. After the user

clicks "Calculate my Budget" button, the system will calculate all of the data based

on user input.

There are two condition in this proccess, which is expenses is bigger

than income, this condition named as "Meet the condition", and another one is

income bigger than expenses, named as "Doesnt meets the condition". When the
36

condition "Doesnt meets the condition", the system only calculate the data one

time, and give the result based on user input in the result page. In other case, when

the condition is "Meets the condition", the system will calculate again the first

result based on user input to make the suggestion result, so there will be two result

in the result page.

Figure 3.7 Activity Diagram Admin Authority - UnLock ID, it will used

for admin to unlock ID that is already registered in the database. Administrator has

to choose the type of the action, which is unlock all ID or unlock by ID.

Figure 3.7 Activity Diagram for Admin Authority - UnLock ID


37

Figure 3.7 Activity Diagram Admin Authority - UnLock ID, is used for the

admin wants to unLock the user ID that is locked by the system. The User ID that

admin wants to unlock has to registered in the database. The administrator has to

choose the type of the UnLock ID, which is UnLock all ID or UnLock by ID.

Figure 3.8 Activity Diagram for Admin Authority - UnBlock ID

Figure 3.8 Activity Diagram Admin Authority - UnBlock ID, is used by

the admin to unblock the user ID that is already registered in the database. In
38

general, this proccess is same as the "UnLock ID" proccess, the admin has to

choose the type of the UnBlock ID, which is unblock all ID or unblock by ID.

Figure 3.9 Activity Diagram for Admin Authority - Block ID

Figure 3.9 Activity Diagram Admin Authority - Block ID, is used for

the admin wants to block some ID that already registered in the database. This case

will happened because that ID has a problem with the administrator, or with the

application like hacking, or something like that.


CHAPTER IV

SYSTEM DESIGN

This chapter will describe the design phase, which includes the concept design

of the system, start from User Interface Design and Class Diagram. The design of the

system is related with the Chapter 3 which is system analysis. The design is based on

architecture of the system. The difference between this phase and the previous one is

that system analysis emphasizes functional requirement while system design concerns

on technical or implementation of the system.

4.1 System Design Overview

The design of this expert system is divided into three main steps. Each of these

steps will be done sequentially and here are the steps:

1. Create account is used for login into the system, this step is the first thing that

youve to do in this program

2. There will be some validation almost in every field.

3. Login into the system by using Account that already registered in register page.

4. In the main program, the user have to input all mandatory field and the program

will calculate all of the user input.

39
40

4.1.1 Create Account

Create account is the basic step for this program, if the user dont have account,

user cant access the main menu of this system. Create account consist of two important

things which is user name and password. User name and password is very important

because both are used for security purpose .if the user have important data in our system

than any person can have steal data from your system.so in that situation the user must

need user name and password to access this system

4.1.2 Validations

Almost all field there is validation, in here validation is ensuring that data

inserted into an application satisfies defined formats and other input criteria. The system

will checking that a software system meets.

4.1.3 Login

In this step, the user have to input the user name and password in the login page.

The system will check the data into database. If the data is valid, the user can access

the main menu page, but if the data is wrong, the system will check the user name, if

the user name is correct but the password is wrong, the system will add login status

become 1, and it will increase by1 if the user doing the same case. In this case, if login

status reach 3, the user name will automatically blocked by the system.

4.1.4 System Calculation

The process is started by taking the answer value that comes from the user after

all of the questions have been answered. After that the system will validate all of the

user input. Every text field have IF and THEN rule.

The next process is the Rule Checking." In this step, every rule will be checked

if there is a premise on this rule with "Yes" or No value. Available text field will
41

show up based on every text field that user input. And then the data will send by the

system and querying to database to get the value for calculating budget process.

Before the result page comes up, the system always check the condition in the

last stage, comparing between income and total expenses, if the total expenses is bigger

than income, so the system will calculating again to reduce the expenses by change the

type of items like fuel type from Pertamax to Premium, or reduce the total of some

variable like utilization of household power electricity rather than eliminating it.

4.2 User Interface Design

User interface is created to receive input from a user to send some instructions

and information to application and show the output process from the system to the user.

User interface is a way for a system user to interact with the application and hardware.

Therefore, user interface design is mostly described as the specification of dialogues or

conversations between the hardware system, user and computer.

In order to give the illustration of the being developed expert system; there will

be some illustration layout interface that can be used as the guidance during the

implementation process. All of the pages created will be developed using JSP (Java

Server Page)to generate HTML which already integrated by Java codes.All of the

elements will use struts 2, <s:textbox>, <s:textfield>,and so on. The usage of the

elements can make the interface design become easier because in each of the elements,

there are also some properties that can be set according to the user preference.

The interface design consists of some main parts such as: Register Page that is

used to create account before do login in the login page. Login Page that is used to

access the main menu and there will be two mandatory text field which is username and

password field. Home or Main Page that is used on the first display. The Main Page

that is used to display the general question and get the first answer from the user, and
42

then the system will check the answer by querying into database and it will show the

next question that related with the question before. The Result Page is used to display

the total calculation total of your income, expenses, and the rest of your income.

4.2.1 Login Page

Figure 4.1 Login Page Interface

As shown in Figure 4.1, the interface consists of four different sections. The

first section is the site name. The second section is two text fields, User Name and

Password, this section is the important section, because this two fields is needed for

querying into database to get the information that ID can access the main page or not.

The third section is button submits, the button is used for access to the main

menu and there will be some validation on there. In this button, the system will

differentiate between the user ID and the administrator ID, because it has the different

page and authority.


43

The other one is feature area. There will be some function and feature at there,

like register is used for create an account before do login and email is used for

communicate with the administrator.

4.2.2 Register Page

Figure 4.2 Register Page Interface

Register Page is the important thing in this program, because without this page,

user cant access the main page to do the main section at there.

As shown in Figure 4.2, the interface consists of four different sections. The

first section is title page. There are some text fields in the second section, which is User

Name, Password, Confirmation Password, Your Email, etc.

Every text field has its own validation, like email, user have to input a valid

email. If the user input invalid format email, it will show alert Invalid email format,

the minimum length of user name is 4 characters, the confirmation password must be
44

same with password field, etc. Gender Selection is used to differentiate what page will

be load in the main page, which is male salary management or female salary

management.

4.2.3 Main Page

The Main Page section consists of some parts which is welcome text to greet

the users when they are login into the application and some menu below the greetings

text such as home, salary management, company management, etc.

When the user click main menu, the system will automatically to get the useful

data from internet to update the data in database by scrapping. So, the user input in the

main menu will be calculated with the actual data right now. There is no data based on

developer opinion. Hopefully the result data can make the user manage their monthly

income effectively and efficiently.

In the content of menu there will be some question about what will be spend

later, and the system will give the result based on user answer, so the user can know

how much money will be spent later


45

Figure 4.3 Main Page Interface

4.2.4 Main Menu

Figure 4.4 Main Menu Interface


46

As shown in Figure 4.4, the main content of the page consists of several text

field which are used user to input the data that they need to calculate. The Main Page

main section consists of some parts: two radio button to be used during the multiple

choice question session. In addition it also used in the question display itself.

4.2.5 Email Page

Email Page is used for send email to the Admin. If the users have some

suggestion or problem with the program, they can send email by using this feature that

provided by the system at the login page. User can access this page without login first.

Figure 4.5 Email Menu Feature Interface

As shown in Figure 4.5, the main content of the page consists of several text

fields which are used for give some information to Admin. Your Email is the
47

important text field, because it is the only information where the admin have to replay

the message.

4.3 Database Design

Actually there are 7 tables, which is Account Table, Car Table, Electricity

Table, Electricity Type Table, Fuel Table, Motorcycle Table, and School Table. The

database of this expert system consists of two main sections Account Table and the rest

table is used to keep temporarily data. Every user click the one of the main menu in the

main page, the database will be updated automatically. All of the tables are stored under

SQL Server with "MoneyManager" as the database name. Here is the list of the tables

that is used by the expert system.

a) Table Account (ACCOUNT), it is used to store the detail of each user personal data

when they do registration in the register page, and it consists of field:

USER_NAME; as primary key of the table and also as an user id

PASSWORD; store the user password that the input in the register page. The password

will automatically encrypt by the system after the user click Create Account button.

CONFIRMATION_PASSWORD; store the confirmation password that used for

comparison between password and confirmation password. This column is used to

prevent the user input the wrong password in the password text field as they want

before.

YOUR_EMAIL; store the email as the user address. This is the only one admin can

give some information to the user.

GENDER; store the type of user gender, is used for differentiate what budget will be

calculated later in main menu.


48

DATE_1; store the date of birth user;

MONTH_1; store the month of birth user;

YEAR_1; store the year of birth user;

IS_LOGIN; store the login status, if the user already login, another user cant login

using the same user name.

STATUS; store the user name status, every user do login and put the correct user name

but wrong password, the status will automatically increase (+1), but if user successfully

login, the status will be set to (0) again.

CREATED_DATE; store the date for admin information when the ID is registered.

TYPE; store the information that type of ID, which Admin or User ID.

b) Table Car (CAR), it is used to store the detail of each car type, fuel consumption inside

town or outside town, and it consist of field:

CAR_TYPE; as primary key and also store any information about car name.

INSIDE_TOWN; store any information about car fuel consumption inside town.

OUTSIDE_TOWN; store any information about car fuel consumption inside town.

CREATED_DATE; store the date for the information when the database is updated by

the system.

c) Table Electricity (ELECTRICITY), it is used to store electricity type in KWH (kilo

watt/hour) and its price.

VA; as primary key and also store any information about type of electricity house in

VA (Volt Ampere)

KWH; store any information about type of electricity in KWH (kil watt/hour)

PRICE; store any information about price of electricity bills based on VA.
49

CREATED_DATE; store the date for the information when the database is updated by

the system.

d) Table Electricity Type (ELECTRICITY_TYPE), it is used to store general

information about the power used by each home application, both the normal watt and

the startup watt.

NAME; as primary key and also store any information about the home application

voltage;

NORMAL_WATT; store any information about normal watt of each home application.

STARTUP_WATT; store any information about startup watt of each home application,

but not all of the home application have startup watt, only several application that have

2 type of voltage.

CREATED_DATE; store the date for the information when the database is updated by

the system.

e) Table Fuel (FUEL), it is used to store fuel type and prices of each name.

NAME; as primary key and also store any information about the fuel name in Indonesia.

PRICE; store any information about the fuel prices.

COMPANY; store any information about company name, because every fuel type has

each own company name.

CREATED_DATE; store the date for the information when the database is updated by

the system.

f) Table Motorcycle (MOTORCYCLE), it is used to store motorcycle type and fuel

consumption.

NAME; as primary key and also store any information about motorcycle name.

PRICE; store any information about price of each motorcycle type.


50

COMPANY; store any information about company name, because every motorcycle

type has each own company name.

CREATED_DATE; store the date for the information when the database is updated by

the system.

g) Table School (SCHOOL), it is used to store information about school classification,

school fee type, school name, etc.

SCHOOL_NAME; as primary key and also store any information about school name.

SCHOOL_TYPE; store any information about school type like Elementary School,

Junior High School, etc.

SCHOOL_FEE_TYPE; .store any information about school fee type like High Class,

Medium Class, or Low Class. In here, the main point that differentiate between Cheap

or Expensive.

PRICE; store any information about school price.

CREATED_DATE; store the date for the information when the database is updated by

the system.

h) Table Rule (RULE), it is used to store information about Rule based on fact. This table

is to decide what is the next of question will be show up.

QUESTION_NAME; as primary key and also store any information about the question.

PREMISE; store any information about premise for each question.

VALUE; .store any information about question that will be shown based on premise

.
51

The table structure for the previous eight table description is shown in the Table 4.1,

Table 4.2, Table 4.3, Table 4.4, Table 4.5, Table 4.6, Table 4.7, and Table 4.8.

4.3.1 Table Structure

The Table 4.1 used to store an account data from user.

Table 4.1 Table ACCOUNT

Field Name Constraint Data Type

USER_NAME Primary Key Varchar (20)

PASSWORD Varchar(200)

CONFIRMATION_PASSWORD Varchar(200)

YOUR_EMAIL Varchar(100)

GENDER Varchar(10)

DATE_1 Varchar (20)

MONTH_1 Varchar (20)

YEAR_1 Varchar (20)

IS_LOGIN Varchar (1)

STATUS Number(38,0)

CREATED_DATE Date

TYPE Varchar (20)

The Table 4.2 used to store car information.

Table 4.2 Table CAR

Field Name Constraint Data type

CAR_TYPE Primary Key Varchar (50)

INSIDE_TOWN Varchar (20)


52

OUTSIDE_TOWN Varchar (20)

CREATED_DATE Date

The Table 4.3 used to store electricity type and price information.

Table 4.3 Table ELECTRICITY

Field Name Constraint Data type

VA Primary Key Varchar (50)

KWH Number(38,0)

PRICE Varchar (20)

CREATED_DATE Date

The Table 4.4 used to store household appliance information.

Table 4.4 Table ELECTRICITY_TYPE

Field Name Constraint Data type

NAME Primary Key Varchar (30)

NORMAL_WATT Varchar (20)

STARTUP_WATT Varchar (20)

CREATED_DATE Date

The Table 4.5 used to store fuel type and price information.

Table 4.5 Table FUEL

Field Name Constraint Data type

NAME Primary Key Varchar (20)


53

PRICE Varchar (10)

COMPANY Varchar (50)

CREATED_DATE Date

The Table 4.6 used to store motorcycle information.

Table 4.6 Table MOTORCYCLE

Field Name Constraint Data type

MOTOR_TYPE Primary Key Varchar (50)

COMPANY_NAME Varchar (50)

INSIDE_TOWN Number (25,2)

CREATED_DATE Date

The Table 4.7 used to store school name and price information.

Table 4.7 Table SCHOOL

Field Name Constraint Data type

SCHOOL_TYPE Primary Key Varchar (50)

SCHOOL_FEE_TYPE Varchar (50)

SCHOOL_NAME Varchar (30)

PRICE Varchar (20)

CREATED_DATE Date
54

The Table 4.8 used to store rule.

Table 4.8 Table RULE

Field Name Constraint Data type

QUESTION Primary Key Varchar (100)

PREMISE Varchar (1)

VALUE Varchar (100)

All of the tables are located under the database of MoneyManager that is

created using Microsoft SQL Server 2008 R2. Every table has primary key that

positioning in the first column and created date as the information when the data is

updated by the system. There is no relationship between one table and another table,

because this application only saving data from website when the system do scrapping

action, so the data in database it is the actual data from the website, there is no data that

given by the programmer opinion. When the application wants to get some data, they

just querying from database. Almost all of the data type in every table using varchar

that represent string in the java programming, it can ease the programmer get the data,

in the calculation, the programmer can parse string into another type as they want.

In this section, the database schema of Online Expert Money Manager by Valley

First project will be described in further detail.


55

Figure 4.6 Database Design

Figure 4.7 Computer Specification Assistant Entity Relationship Diagram. The

database design of Online Expert Money Manager by Valley First is not complex. There

is no relationship between one table with another table. All the tables in database stand

alone. This kind of database design in possible due to unique characteristic and

international standards of the components.

Online Expert Money Manager by Valley First Project doesnt need to make

database with relationship. Because the system when do scrapping data from internet,
56

it will automatically save the data into database. So all tables in this database project is

stand alone.

4.4 Class Diagram

Class diagram presents the applications class overview that will be developed.

The overview is including class name, instance, and its attribute. Figure 4.7 shows the

Class Diagram of Online Expert Money Manager by Valley First.

System

<<import>>
View Controller Model

Figure 4.7 Class Diagram

The class diagram of the Online Expert Money Manager by Valley First is

generated using plugins in the eclipse class diagram. The class diagram shows any field,

property, operations, and also their relationships among classes. Because of there are

more than ten classes in total than the display of the class diagram will be divided into

several parts.
57

4.4.1 Controller Class Diagram

Based on Figure 4.7 Class Diagram, class user controller becomes the main

subject from the system, all the activities such as calculate the budget, send email, user

register, login, logout, etc. are done by users and will be recorded to database. The more

detail structure of Class Controller shows in Figure 4.8 and 4.9.

Figure 4.8 Class Controller Part I


58

Figure 4.9 Class Controller Part II

The detail explanations of each method are described in Table 4.8. The

explanations include the activity done by the controller, correlation with model or view

class, etc.
59

Table 4.9 List of Model Class with All Methods and Description

No Controller Name Method Name Details

- This method is for

administrator to UnBlock all

1. AdminAction unblockUser( ) ID or UnBlock one ID that

blocked by the system or by

administrator

- This method is for

administrator to UnLock all ID

unlockUser( ) or UnLock one ID that locked

by the system or by

administrator

- This method is for

administrator to Block all ID

or Block one ID that


blockUser( )
administrator wants to block

because something wrong with

the ID

- This method is terminated the

logoutAdmin( ) admin session.

- Redirect admin to login form

- This method is used for


checkData($UserName,$
querying user name into
session)
database
60

- This method is used for


checkAllId($session)
querying the type of ID

- This method is terminated the


MoneyManagerAct
2. logout( ) user session.
ion
- Redirect user to login form

- This method is to redirect the

user into Salary Management

salaryManagement( ) page

- The data in database will be

updated in this method

- This method is used for

calculate all of the data based

on user input

- The system will check the

condition, the condition was

calculateMale() meets or not

- The system will show the

result based on condition

- There will be only one result

based on user input or another

result that is suggestion result

- This method is used for the


setDefaultForRegisterPa
system to set default value for
ge( )
register page.
61

- This method is used for change

the type of priority value from

getPriority( ) string into integer.

- Integer will be used in the

method "calculateMale"

- This method is used for change

the fuel type from the


changeFuelType( )
expensive until the cheaper

one.

- This method is used for set the

default value for the salary

management page like set


setDefaultValueForMana
default value for radio button
gement( )
- This method will get the data

from database, to create a

droplist, etc

- This method is used for


checkMotorcycle($sessio
querying into database to get
n)
all of the motor type

- This method is used for


checkMotorcycleType($
querying into database to get
motorType,$session )
one type of motorcycle type

- This method is used for

getAllCar($session) querying into database to get

all of the car type


62

- This method is used for


checkCar($carType,$sess
querying into database to get
ion)
one type of car type

- This method is used for


getEmail($email,$sessio
querying into database to get
n)
Email

- This method is used for


checkData($userName,$s
querying into database to get
ession,$password)
user data when do login.

- This method is used for


checkUserName($userNa
querying into database to get
me,$session)
username ID

- This method is used for


checkFuelType($fuelTyp
querying into database to get
e,$session)
fuel type of vehicle

- This method is used for


checkElectricityPrice($el
querying into database to get
ectricityPrice,$session)
electricity price

- This method is used for


checkElectricityType($el
querying into database to get
ectricityType, $session)
electricity type

checkSchoolFee($childO - This method is used for

ccupation,$schoolFee,$se querying into database to get

ssion) school fee


63

- This method is used for the

user wants to give an

3. EmailAction sendEmailOutside() information, some suggestion,

or complaining about the

application

- The system will redirect the


logoutEmailOutside ( )
user into login page

- This method is used for login

into main page

- The system will check the type

of ID, which is user or admin


4. LoginAction checkLogin()
- User ID will be redirect the

user into user page

- Admin ID will be redirect the

admin into admin page

MoneyManagerAct - This class is containing of


5. POJO Class
ionForm POJO class value

- This method is used for

6. RegisterAction register() redirect the user into register

page

- Validate the input which given

by users, as the registrations

doSaveDataRegister() requirement

- Save the user data into

database
64

- After finish, redirect the user

into login page

- This method user for redirect


backToLoginPage()
the user back into login page

- This method is depend on the

internet connection.

DataScrappingActi - The system will open the


7. scrappingAllData()
on connection for every browser

that already declare by the

code

- This method is used to get the

extractElectricityName($ electricity name and split it

htmlResult) from HTML to get the usefull

data and store it into database

- This method is used to get the

extractElectricityPrice($h electricity price and split it

tmlResult) from HTML to get the usefull

data and store it into database

- This method is used to get the

extractPetronasName($ht petronas fuel name and split it

mlResult) from HTML to get the usefull

data and store it into database

extractPetronasPrice($ht - This method is used to get the

mlResult) petronas fuel price and split it


65

from HTML to get the usefull

data and store it into database

- This method is used to get the

extractPertamaxName($h pertamax fuel name and split it

tmlResult) from HTML to get the usefull

data and store it into database

- This method is used to get the

extractPertamaxPrice($ht pertamax fuel price and split it

mlResult) from HTML to get the usefull

data and store it into database

- This method is used to get the

premium and solar fuel name


extractPremiumSolarNa
and split it from HTML to get
me($htmlResult)
the usefull data and store it into

database

- This method is used to get the

premium and solar fuel price


extractPremiumSolarPric
and split it from HTML to get
e($htmlResult)
the usefull data and store it into

database

- This method is used to get the

extractShellName($html shell fuel name and split it

Result) from HTML to get the usefull

data and store it into database


66

- This method is used to get the

extractShellPrice($htmlR shell fuel price and split it from

esult) HTML to get the usefull data

and store it into database

- This method is used for save


saveFuelNameAndPrice(
all of the fuel name and price
$name,$price)
into database

- This method is used for save


saveElectricityNameAnd
all of the electricity name and
Price($name,$price)
price into database

- This method is used for open


openConnectionForData
connection when do data
Scrapping
scrapping to the website
CHAPTER V

SYSTEM DEVELOPMENT

5.1 Code & Implementation

System Development is a continuation phase of the previous phase, System

Designing. Here the previously designed system will be implemented as form of codes

that snippet from the system.

5.1.1 Code Structure

The development of the Online Expert Money Manager by Valley First

application is using Eclipse Java EE IDE for Web Developers. The system needs some

external libraries which are Spring and Hibernate to manage the database connection.

Using these libraries could make the development of the application much faster by

providing a rich set of libraries function, as well as a fast and reliable database

connection.

The expert system application will use four main structures, which are Data

Access, Business Object, Business Logic, and Main Code. In Data Access part, the code

will be related to query string, stored procedure, and all other things which are related

to the database area.

67
68

Figure 5.1: HTML Wrap Project - Controller Structure

As shown in Figure 4.7, in this Project I only create one package which is for

testing to scrapping data from website, the result will come out from its console.

htmlWrap.java is the important class for developer, because in this class is the first step

when the developer want to scrapping data from a website, the programmer have to

extract the HTML file and find the way to get the useful information from that, if the

code is work on this class, the programmer will copy the code into the main class. The

programmer create this class is for testing what the programmer can get from that

HTML, check the type. The programmer can do trial and error by only run this class

without run the main program. All of the data from scrapping will be store into database.

It used for calculating when the user does budgeting process.


69

Figure 5.2: Online Expert Money Manager Project - Controller Structure


70

Figure 5.3: Online Expert Money Manager Project - View Structure

The project implements the MVC (Model View Controller) structure which

separates the entity model, graphical user interface and the controller of each interface.

Online Expert Money Manager by Valley First project consists of 4 packages, 10 JSP

(Java Server Page) view for the GUI like access_menu.jsp, admin_page.jsp,, and 15

java classes to control the logic like MoneyManagerAction, LoginAction, Register

Action, Email Action, etc.

The main class in this application is MoneyManagerAction.java, all class in this

project extends to that class, and this class extends with MoneyManagerActionForm as

an ActionForm, because all values is declare on that class.


71

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"


pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Male Salary Management</title>
<link href="style.css" type="text/css" rel="stylesheet"/>
</head>
<body>
<center><s:label label="Salary Management JSP Male" ></s:label></center>
Hii.. <s:property value="greetings"/>
<s:form action="doCalculateSalaryManagementMale">
<s:label label="= = = = = = = = = = = = = = = = = = Personal Status = = = =
= = = = = = = = = = = = = =" labelposition="top"></s:label>
<s:textfield label="Monthly Salary" name="monthlySalary"
labelposition="right"></s:textfield><br>

Figure 5.4: Online Expert Money Manager Project - View Structure

For the JSP section, when the programmer start created the file .jsp, they have

to import taglib (uri=/struts-tags). If the programmer didnt import the taglib, they

cant use all the tag in struts 2. Another important thing is the programmer have to set

all the tags like <s:label>, <s:textfield>, <s:submit>, inside <s:form>..</s:form> tags

as shown in figure 5.4, if not, all of value that user already input in the interface will be

not send to the controller.

5.1.2 Register Page

User will access the registration page when doing the registration phase.

Register page is a page that is required before the user can do login in the login page.

The users have to Create Account in the Register Page. To access Register Page, the

hyperlink will be provided by the system, exactly below of button login in the login

page. Here is the display of the Register Page as shown in Figure 5.5:
72

Figure 5.5 Register Page

As shown in Figure 5.5, this register page consist of some field that user have

to input. Every text field have different validation, like the minimum of username is 5

character, password must be 6 digit or more, confirmation password must be same with

password, format email must be correct, etc.


73

After the user input all mandatory fields, the system will check the validation of

each field. If there is some error such as User Name is already exist, the system will

throw error and return to this page and show error message in the bottom page.

Another important text field is Your Email. This is the only information for

admin to replay the user message if there is update feature/something problem about

the website. So the user has to put the correct email. The Java Script will validate all of

your input, even when the user move from field to field, or click the button Create My

Account.

Figure 5.6 Register Page Email Validation

As shown in Figure 5.6, this validation will show up even the user move from

Your Email text field to the Gender Selection or click the button Create My

Account.
74

function validateThisPage(){
var selectedId = document.getElementById('yourEmailId').value;
// alert(selectedId);
if (!validateEmail(selectedId)) {
alert("Invalid Email Format");
return;
}
}

function validateEmail(email) {
var a = false;
var res = false;
if (typeof(RegExp) == 'function') {
var b = new RegExp('abc');
if(b.test('abc') == true)
a = true;
}
if (a == true) {
reg = new RegExp('^([a-zA-Z0-9\\-\\.\\_]+)' + '(\\@)([a-zA-Z0-9\\-
\\.]+)' + '(\\.)([a-zA-Z]{2,4})$');
res = (reg.test(email));
} else {
res = (email.search('@') >= 1 &&
email.lastIndexOf('.') > email.search('@') &&
email.lastIndexOf('.') >= email.length-5)
}

Figure 5.7 Register Page Email Validation Java Script Code

As shown in Figure 5.7, this is the code for email validation in java script. The

validation will be divided into three parts which is header as the front part, split as

the middle part, and last word as the last part. For example the email is

romy91@plasa.com, that email have a first part is header, it will be constructed by

alphabet, number or combine both of them (a-z or 0-9), the middle part is split, for

example (@), and last part email have to contains dot (.). While the user input the valid

email that never been used by another user, they also have to input the correct format,

if the user violeting the validation, it will pop up alert message Invalid Email as

shown in figure Figure 5.1.


75

//Open Connection Query


HibernateUtils.getSessionfactory();
Session session =
HibernateUtils.getSessionfactory().getCurrentSession();
session.beginTransaction();

//Check Available Email


List getEmail = getEmail(getRegisterEmail(), session);
if(getEmail.isEmpty()){
Account saveAccount = new Account();
saveAccount.setUserName(getRegisterId());
//Encrypt Password
saveAccount.setPassword(Encryption.encrypt
(getRegisterPassword()))
saveAccount.setConfirmationPassword
(Encryption.encrypt(getRegisterConfirmationPassword()));
saveAccount.setYourEmail(getRegisterEmail());
saveAccount.setGender(getRegisterGenderSelection());
saveAccount.setDate_1(getDate());
saveAccount.setMonth_1(getMonth());
saveAccount.setYear_1(getYear());
saveAccount.setIsLogin("N");
saveAccount.setStatus(0);
saveAccount.setCreatedDate(new Date());
saveAccount.setType("User");
session.save(saveAccount);
session.getTransaction().commit();
}else{
this.setDefaultValueForRegisterPage();
addActionError("Email is already used by another
user");
return ERROR;
}

Figure 5.8 Register Page Saving Account to Database Code

As shown in Figure 5.8, this is the code for email saving account into database,

before the system save the data into database; it will validated the data like checking

user name and password for minimum and maximum length. After that, the system

querying into database for checking available email, because email is important thing

like the explanation before.

When the system saved the data into database, it will encrypt the password and

confirmation password. The programmers have to set a large number on the data type

length in the database. Because the password string is encrypted from original content,

it makes password string to be larger in length.


76

5.1.3 Login Page

Login page is a page that is required before the user can access another page in

the system. This page will store much information that can be used to be analyzing

factors such how many times the user has access the page, and so on. There are two

buttons and two textboxes elements that are used in this page, in the end of the text box

there is a button login to redirect us into main page. Here are the main components of

the form as shown in Figure 5.9:

Figure 5.9 Login Page

After the user input user name and password, the system will validate, and

querying to database. And then, if the data is valid, the user can access the menu based

on their gender when they choose gender selection in register page before. But for now

on, the system only show the male salary management page.
77

//check login
List getData = checkData(getId(), session,
Encryption.encrypt(getPassword()));
if(!getData.isEmpty()){
Account queryResult = (Account) getData.get(0);

//set global variable


REGISTER_ID = queryResult.getUserName();
//check Available Login for User
if("Admin".equals(queryResult.getUserName())){
setGreetings(REGISTER_ID);
return LOGIN;
}
//check Available Login for User
if(queryResult.getStatus()>=3){
addActionError("Your Id is already blocked by
Administrator");
setErrorMessage("Please contact us to get some
information \n by email at romy10010001@yahoo.com");
return ERROR;
}
//check is still login
if("Y".equals(queryResult.getIsLogin())){
addActionError("Your Id is still login");
return ERROR;
}
queryResult.setIsLogin("Y");
queryResult.setStatus(0);
//Update IS_Login
session.update(queryResult);
session.getTransaction().commit();
return SUCCESS;
}

Figure 5.10 Login Page Login Action Code

In this code, login section will differentiate between admin and user. If the result

of query is User, so the system will redirect the user into main page, and set the status

isLogin become Y, it means the username is still login in the system. If there is

another user trying to login by using the same username, they will automatically throw

into login page again, and the system will show up the error message Your ID is still

login. But in other case, if the user put the right user name, but input the wrong

password, the system will automatically set the status in database increase by1. When

the number of status in the database reach three, the system will automatically block

your ID, and it will show the error message Your ID is blocked by Administrator.
78

There is also Admin in this application to maintain the system, when Admin

login in the application, the system will redirect into Admin Area without set the

isLogin and status in the database. Admin ID has different condition between

common user ID, they can't be locked, blocked by something, so the administrator don't

need to worry about their status ID.

5.1.4 Admin Page

In this admin page, Administrator has some authority to the user like UnBlock

user ID, UnLock User ID, and Block User ID. Administrator have to login as admin in

the login page. The system will automatically redirect admin into this page. Here is the

Admin Page as shown in Figure 5.11:

Figure 5.11 Admin Page


79

The Administrator has to choose the type of action by choosing radio button

between action to all user ID or one ID. First step, the system will check the type of

action that administrator chooses, and then the system will validate the data by querying

into database. The user ID that admin wants to UnBlock / UnLock / Block has to

registered in the database, if the user is not registered in database, the system will

automatically show the error message in the bottom of page as shown in Figure 5.12:.

Figure 5.12 Admin Page - Block User ID Error Message

UnBlock User ID: it is used to open the ID that already blocked by the system in the

login page or by the Admin authority. In this part, there are two types of unblock user

ID, which is unblock the user by ID (one ID) or unblock all the user ID. The

administrator has to choose the radio button, which is unblock all or unblock user by

ID. If the admin choose unblock all user ID, the system will automatically querying

into database to set all of the ID with the type is "user" will be unblocked. If the admin

choose unblock user by ID, they have to input the correct ID that already registered into

database. The system will querying into database and check the user ID is exist in

database or not. Here is the Snippet of the code to unblock user ID as shown in Figure

5.12:
80

//Unblock User page


public String unblockUser() throws IOException{

try{
if("1".equals(getUnblockUser())){
//Open Connection Query
HibernateUtils.getSessionfactory();
Session session =

HibernateUtils.getSessionfactory().getCurrentSession();
session.beginTransaction();

List getAllData = checkAllId(session);


if(!getAllData.isEmpty()){
for (Object object : getAllData) {
Account queryResultData = (Account)
object;
queryResultData.setStatus(0);
session.update(queryResultData);
}

session.getTransaction().commit();
}

addActionMessage("Unblock All User is success");


return SUCCESS;
}

//Check Mandatory Field


if("".equals(getInputUnblockID())){
addActionError("Please input unblock ID");
return ERROR;
}

//check Data

List getData = checkData(getInputUnlockID(), session);


if(!getData.isEmpty()){
Account queryResult = (Account) getData.get(0);
queryResult.setIsLogin("N");
//Update IS_Login
session.update(queryResult);

session.getTransaction().commit();

Figure 5.13 Admin Page - UnBlock User ID

UnLock User ID: it is used to open the ID that already locked by the system or by the

Admin authority. When the users do login in the login page, and then they forget to

logout, they just closed the browser, this situation make the ID will be locked because

the system still read the user name is still login. In this part, there are two type of unlock

user ID, which is unlock the user by ID or unlock all the user. Here is the Snippet of

the code to unlock user ID as shown in Figure 5.14:


81

//UnLock User
public String unlockUser() throws IOException{

try{

if("1".equals(getUnlockUser())){
//Open Connection Query
HibernateUtils.getSessionfactory();
Session session =
HibernateUtils.getSessionfactory().getCurrentSession
();
session.beginTransaction();

List getAllData = checkAllId(session);


if(!getAllData.isEmpty()){
for (Object object : getAllData) {
Account queryResultData = (Account)
object;
queryResultData.setIsLogin("N");
session.update(queryResultData);

}
session.getTransaction().commit();
}
addActionMessage("Unlock All User is success");
return SUCCESS;
}

//Check Mandatory Field


if("".equals(getInputUnlockID())){
addActionError("Please input unlock ID");
return ERROR;
}

//Open Connection Query


HibernateUtils.getSessionfactory();
Session session =
HibernateUtils.getSessionfactory().getCurrentSession();
session.beginTransaction();
//check Data
List getData = checkData(getInputUnlockID(), session);
if(!getData.isEmpty()){
Account queryResult = (Account) getData.get(0);
queryResult.setIsLogin("N");

Figure 5.14 Admin Page - UnLock User ID

Block User ID: it is used to block the ID that Admin want to block, maybe it will

happen because the illegal ID or that ID doing some violation to the application. In this

part, there are two type of block user ID, which is block the user by ID or block all the
82

user instantly. Here is the Snippet of the code to unlock user ID as shown in Figure

5.15:

//Block User
public String blockUser() throws IOException{
try{

if("1".equals(getBlockUser())){

//Open Connection Query


HibernateUtils.getSessionfactory();
Session session =
HibernateUtils.getSessionfactory().getCurrentSession();
session.beginTransaction();

List getAllData = checkAllId(session);


if(!getAllData.isEmpty()){
for (Object object : getAllData) {
Account queryResultData = (Account)
object;
queryResultData.setStatus(3);
session.update(queryResultData);
}
session.getTransaction().commit();
}
addActionMessage("Block All User is success");
return SUCCESS;
}
//Check Mandatory Field
if("".equals(getBlockID())){
addActionError("Please input block ID");
return ERROR;
}

//Open Connection Query


HibernateUtils.getSessionfactory();
Session session =
HibernateUtils.getSessionfactory().getCurrentSession();
session.beginTransaction();

//check Data
List getData = checkData(getBlockID(), session);
if(!getData.isEmpty()){
Account queryResult = (Account) getData.get(0);
queryResult.setStatus(3);
//Update IS_Login
session.update(queryResult);
session.getTransaction().commit();
setGreetings(REGISTER_ID);
addActionMessage("Block User "+getBlockID()+" is success");
return SUCCESS;
}

Figure 5.15 Admin Page - Block User ID


83

5.1.5 Main Menu Page

Figure 5.16 Main Menu Page

In this main menu page, when the user click the menu, for example Salary

Management, the system automatically update the database, do scrapping from web to

web that already code by the programmer. Every area like Child Area, Car Area,

each of them has their own website. The system will automatically open the website,

and get the data by scrapping.

The field will be automatically enabled when the user input the correct data and

match with the validation of each field. The system will automatically validate the user

input in java script, and also enabling another field that related with the user input at

that time.
84

resultSource = openConnectionForDataScrapping(SHELL_PRICE);
//extracting data
if(!resultSource.equals("") ){
shellName = extractShellName(resultSource);
shellPrice = extractShellPrice(resultSource);
for(int i = 0 ; i<shellName.size() ; i++){

saveFuelNameAndPrice(shellName.get(i).toString(),
shellPrice.get(i).toString());
}
}

public List extractShellName(String htmlResult) throws IOException{


BufferedReader reader = new BufferedReader(new
StringReader(htmlResult));
List<String> listOFString = new ArrayList<String>();
List resultList = new ArrayList();
String resultString ="";
int x = 0;
String line ="";
String isi ="";
String isi2 ="";
String result="";
while((line = reader.readLine()) != null){
if(line.contains("<p>Shell</p>")){
listOFString.add(line);
}
}
for (String string : listOFString) {
String[] filter1 = string.split("Shell");
isi=filter1[1];
String[] filter2 = isi.split("</p> <p>");
isi2=filter2[1];
if(isi2.contains("</p></td>")){
isi2 = isi2.replace("</p></td>", "");
}
if(isi2.contains("&nbsp;")) {
isi2 = isi2.replace("&nbsp;", "");
}
resultString = isi2;
resultList.add(resultString);
}
return resultList;
}

Figure 5.17 Main Menu Scrapping Data

Figure 5.17 is the first part of ProcessHTMLData, which is to read a file and

determine which part of the file will be processed next. Since the pattern from the source

site is the same, the program can easily recognize which part to take to be processed

later. The part the program will take is the part that contains useful information.
85

After the program take the useful information, the data will be filtered by

removing unused tags retain the needed information from that part, as the shown in

figure 5.17.

if("true".equals(getAcCheckBox())){
//Open Connection Query
HibernateUtils.getSessionfactory();
Session session2 =
HibernateUtils.getSessionfactory().getCurrentSession();
session2.beginTransaction();

//check Electricity Type using Query to database


List electricityType = checkElectricityType("AC", session2);
ElectricityType electricityTypeResult = (ElectricityType)
electricityType.get(0);
//get the normal Watt and parse into Integer
acNormalWatt =
Integer.parseInt(electricityTypeResult.getNormalWatt());
//parsing the integer to big decimal for doing calculation
valTemp1 = new BigDecimal(acNormalWatt);
acConsumsion = Integer.parseInt(getAcTextField2());
acQuantity = Integer.parseInt(getAcTextField());
valTemp6 = new BigDecimal (acQuantity);
valTemp2 = new BigDecimal(acConsumsion);
valTemp3 = (valTemp1.multiply(valTemp6)).divide(KWH, 2,
RoundingMode.HALF_UP);
valTemp4 = valTemp3.multiply(electricityPowerPrice);
valTemp5 = valTemp4.multiply(valTemp2);
valTemp7 = valTemp5.multiply(month);
//the result will be round up
acCalculate = valTemp7.setScale(2,RoundingMode.HALF_UP);

if(isFirstTime){
System.out.println(acCalculate);
setAcTextFieldResultCal(nf.format(acCalculate));
}else{

setAcTextFieldResultSuggest(nf.format(acCalculate));
if(acUnit||acHour){
setAcTextFieldResultSuggestFlag("We Reduce your AC
Electricity Bills");
}

Figure 5.18 Main Menu Calculate the Data

Here is the example of calculation in main menu page. The system will get the

user input in store into String. Almost of the value in this program is String, because

it easier the programmer to process the data. If the system want to change the value

type, they just parse it into a new value that they want.
86

//deduct quantity
if(isFirstTime == false){
int [] priorityInt = new int[]{3,2,1};
for (int priority : priorityInt) {
if(priority <= getPriority(getAcPriority())){
int i = Integer.parseInt(getAcTextField());
int j = 1;
int realHour =
Integer.parseInt(getAcTextField2());
int maxHour = 8;
if(realHour>maxHour){
int x = realHour - 1;
setAcTextField2(String.valueOf(x));
acHour = true;
}
if("Low".equals(getAcPriority())){
j = 0;
}
if(i>j){
int x = i - 1;
setAcTextField(String.valueOf(x));
acUnit = true;
break;
}
}

Figure 5.19 Main Menu Deduct Quantity

As shown in Figure 5.19, this code is about how to deduct quantity of each

component in this application. When the system calculating all data from user input to

get the result, at the end of calculation, there are code that will check the condition of

the result, in this case, the programmer using do while logic.

do{
...
...
...
}while(saveMoney.compareTo(theRestOfYourBudgetMaleTemp2)>0);

return SUCCESS;

Figure 5.20 Main Menu Do While Logic Code


87

The programmer create the logic that user have to save 10% of their monthly

salary for unpredictable condition, such as sick, buy some goods important, etc. As

shown in Figure 5.19, that picture is about do while logic when the system checks the

condition at the end of calculation. The programmers declare saveMoney as the value

that users have to save their money in a month, and

therRestOfYourBudgetMaleTemp2 as the rest budget value of the user.

.When the value of saveMoney is bigger than value

therRestOfYourBudgetMaleTemp2, it means the user expenses is bigger than

income, so they cant save 10% of their monthly salary, so the system will calculate

again to get suggestion result for the user. The programmers already do some research

about the ideal of power consumption every household appliance, like the ideal of air

conditioner is 8 hour per day, AC can be turn on when someone wants to sleep, user

dont need turn on 24 hours per day, it just increase the expenses in a month. And also

the programmer will reduce based on priority that already provided in the main menu

screen.

There are three types of priority, which is high, medium, and low. Low priority

means that tool is not very important for the user, the system will decrease it first in the

second calculation. Each time the system decrease a quantity of goods, it will calculate

again and check the comparison between saveMoney value and

therRestOfYourBudgetMaleTemp2 value, if saveMoney less than

therRestOfYourBudgetMaleTemp2, the system will show the first result and

suggestion result, if saveMoney still bigger than

therRestOfYourBudgetMaleTemp2, so the system will decrease the quantity again

from top of calculation until reach the minimum quantity of that priority. Medium
88

priority means that tools is more important than low priority, the system will decrease

the quantity after the low priority reach the minimum value. High priority means that

tool is very important for the user, so the system will decrease that tool in the last

calculation, when the medium and low priority reaches the minimum value.

if(isFirstTime){
if(getFuelTypeCar2()!=null && !"".equals(getFuelTypeCar2())){
fuelTypeCarString2 = getFuelTypeCar2();
setFuelTypeCar2Result(getFuelTypeCar2());
}else{
setFuelTypeCar2Result("-");
}
}else{
if(getFuelTypeCar2()!=null && !"".equals(getFuelTypeCar2())){
setFuelTypeCar2Suggest(getFuelTypeCar2());
if(fuelCar2){
setFuelTypeCar2SuggestFlag("We change your fuel
type car, before is :"+fuelTypeCarString2);
}
}else{
setFuelTypeCar2Suggest("-");
setFuelTypeCar2SuggestFlag("-");
}
}

Figure 5.21 Main Menu Inside Do While Logic Code

As shown in Figure 5.21, this code is differentiating the system when they have

to set the first result and suggestion result. Value of Boolean isFirstTime = true as a

symbol that value must be set for the real result, and when isFirstTime = false as a

symbol that value must be set for the suggestion result.


89

public List checkElectricityType(String electricityType, Session session){


return session.createCriteria(ElectricityType.class)
.add(Restrictions.eq("name", electricityType))
.list();
}

Figure 5.22 Main Menu Inquiry the Data

public class HibernateUtils {

private static final SessionFactory sessionFactory =


buildSessionFactory();
public static SessionFactory getSessionfactory() {
return sessionFactory;
}
private static SessionFactory buildSessionFactory(){
try{
Configuration configuration = new Configuration();
configuration.addAnnotatedClass(Account.class);
configuration.addAnnotatedClass(Fuel.class);
configuration.addAnnotatedClass(Electricity.class);
configuration.addAnnotatedClass(Car.class);
configuration.addAnnotatedClass(Motorcycle.class);
configuration.addAnnotatedClass(ElectricityType.class);
configuration.addAnnotatedClass(School.class);
configuration.configure("/thesis/money
/manager/hibernate/hibernate.cfg.xml");
return configuration.buildSessionFactory();
}catch(Throwable ex){
System.err.println("Initial SessionFactory creation
failed." + ex);
throw new ExceptionInInitializerError(ex);
}
}
public static void shutdown(){
getSessionfactory().close();
}
}

Figure 5.23 Main Menu Hibernate Utils

In the HibernateUtils, the class creates a Session Factory to create a specific

session for each transaction. In this class, the code must specifically define what class

that has an annotated variable / class. If the class is not configured here, the class cant

utilize hibernate to do a transaction with database.


90

5.1.6 Result Page

Figure 5.24 Result Page

In the result page, the system will display result data after calculation by the

system. The result page will show all fields even the user didnt input any data in the

entry screen. The result of every money will be formatted by

NumberFormat.getNumberInstance(); the format will makes the user easier to read

format money in the result screen.

In this page, is possible to get two result, because when the system calculate all

of the from user input, it will check the rest of user budget, if the rest budget is less than

10% of user total income, so the system will calculate again for the suggestion result,

and try to give the solution to the user what will be reduce in the user expenses in a

month.
91

5.1.7 Email Page

Figure 5.25 Email Area

Figure 5.25 is the process of Sending Email. This page is the one of the way to

communicate with the administrator. This feature is very useful if the user has some

problem, suggestion, or complaining about the application. Admin will receive the

message in the inbox mail, and replay to the Your Email Address as user input before

send the email as soon as possible.

The user has to input Your Email Address because that field as the

information for Admin, where the admin have to replay the message, so the format of

user email must be in correct format. The user dont need to worry about the validation,

because when the user move from Your Email Address field to another field or when

clicking the Send Email button, there will be email validation on there.
92

//Send Email
public String sendEmailOutside() throws IOException{
try {
String host = "smtp.gmail.com";
String from = "thesisonlinemoneymanager2@gmail.com";
String pass = "cimb1234";
Properties props = System.getProperties();
props.put("mail.smtp.starttls.enable", "true"); // added
this line
props.put("mail.smtp.host", host);
props.put("mail.smtp.user", from);
props.put("mail.smtp.password", pass);
props.put("mail.smtp.port", "587");
props.put("mail.smtp.auth", "true");
String[] to = {"thesisonlinemoneymanager@gmail.com"}; //
added this

Session session = Session.getDefaultInstance(props,


null);
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));

InternetAddress[] toAddress = new


InternetAddress[to.length];

// To get the array of addresses


for( int i=0; i < to.length; i++ ) { // changed from a
while loop
toAddress[i] = new InternetAddress(to[i]);
}
for( int i=0; i < toAddress.length; i++) { // changed
from a while
message.addRecipient(Message.RecipientType.TO,
toAddress[i]);
}
message.setSubject("Please Replay to
:||"+getYourEmail()+"||Subject :"+getSubject());
message.setText(getMessage());
Transport transport = session.getTransport("smtp");
transport.connect(host, from, pass);
transport.sendMessage(message,
message.getAllRecipients());
transport.close();
}

Figure 5.26 Email Area

The JavaMail API provides a platform-independent and protocol-independent

framework to build mail and messaging applications. The JavaMail API is available as

an optional package for use with Java SE platform and is also included in the Java EE

platform. The JavaMail 1.4.5 release contains several bug fixes and enhancements.
93

5.1.8 Struts Configuration

<package name="basicstruts2" extends="struts-default" namespace="/">

<action name="index">
<result>/index.jsp</result>
</action>

<action name="doLogin"
class="thesis.money.manager.action.LoginAction" method="checkLogin">
<result name="success">/access_menu.jsp</result>
<result name="error">/index.jsp</result>
<result name="input">/index.jsp</result>
<result name="login">/admin_page.jsp</result>
</action>
<action name="doCalculateSalaryManagementMale"
class="thesis.money.manager.action.MoneyManagerAction"
method="calculateMale">
<result
name="success">/salary_management_male_result.jsp</result>
<result
name="error">/salary_management_male.jsp</result>
</action>
<action name="doLogout"

class="thesis.money.manager.action.MoneyManagerAction"
method="logout">
<result name="success">/index.jsp</result>
</action>
<action name="doBackLoginPage"

class="thesis.money.manager.action.RegisterAction"
method="backToLoginPage">
<result name="success">/index.jsp</result>
</action>
<action name="doRegister"

class="thesis.money.manager.action.RegisterAction" method="register">
<result name="success">/register_page.jsp</result>
</action>
<action name="doSavingDataRegister"

class="thesis.money.manager.action.RegisterAction"
method="doSaveDataRegister">
<result name="error">/register_page.jsp</result>
<result name="success">/index.jsp</result>
</action>
Figure 5.27 Struts Configuration

Since Struts.xml is an xml file, its configuration is semi-manual. There will be

no IDE assistance when creating such files. The important point in this file is the Action

tag. The <action> has several parameters. The tag <action> itself defines the flow of

.jsp files and variables.


94

For example, the tag <action name=doLogin> will be called every time the

.jsp link with struts (example: <s:url action='doLogin'/> will search the action with

name doLogin in Struts.xml).

After they found the matching action, the controller will pass the flow into the

corresponding action. As depicted above, the action named doLogin have the class

thesis.money.manager.action.LoginAction, then the flow will now moved to that Java

class with particular method specified. The method is also specified in method

parameter. For doLogin action, the method is login. The result is when the user

clicks the link, the system will go to LoginAction.Java and find login() method and run

it.

After the system run the execute() method, the method itself will return a value.

For example, the return value of method execute() is success, then struts will look for

that particular word in the tag <result> with matching name. When found, the system

will continue the flow to the particular .jsp file pointed by the tag result. For this case,

it is access_menu.jsp.
CHAPTER VI

EVALUATION

The objectives of system testing phase are to assess and make sure the

application to works flawlessly. Thus, the conduction of a system testing is important.

The system testing phase will be accommodated based on several scenarios. In order to

ensure the whole system accomplish the requirements, there are some scopes and

limitations to be noted by the users as well.

6.1 Scope and Limitation

The test to be ran in based on the system functionalities. Application can be

viewed on the Internet Explorer and Google Chrome browser. In addition, the

application should also guarantee that multiple users can access the application in

almost the same time. Therefore, the tests need to refer to systems functional

requirements and resource requirements. In order to accomplish the expected result,

the system testing requires the latest version of web browsers that support HTML 5

with the established internet connection.

6.2 Testing Environment

The tests are based on the following hardware and software specifications:

95
96

1. Microsoft Windows 7 Operating System

2. MySQL Database

3. Core i5 Processor

4. 4 GB RAM

5. Smartfren, Volume Based Internet Provider

6. Mozilla Firefox, Version 16.02

6.3 Testing Scenario

The testing scenario aims to demonstrate that the web application meets its

requirements. There are several policies inside the testing scenario such as all functions

accessed through menus will be tested, all functions will be tested with correct and

incorrect input. Then successful tests will show that the web application operates as

intended and displays the expected outputs.

6.3.1 Interface Evaluation

The interface evaluation will measure two main points of the application, which

are the cross browser interface and Interactivity level. After the test, it is proven that

the application can be shown in the Google Chrome and Internet Explorer with

compatibility mode.

In general, the whole interface can be said as the user friendly application

because it does not require complex interaction from and to the user. Unfortunately, the

design is not really attractive or maybe should be improved by more pictures or flash

animations.
97

6.3.2 General Evaluation

The general evaluation distributed into two types, the positive and the negative

scenario. The positive scenario provides the correct input while the negative scenario

provides the incorrect input. Table 6.1 shows the positive scenarios, and Table 6.2

shows the negative scenarios.

Table 6.1 Testing Scenario Positive Test

Module Name Scenario Expected Result

Login - Filled in correct username System redirect user to


field. mainpage page.
- Filled in correct password
field.
- Clicked on login button.
Register - Filled in correct username System redirect user to
field. login page.
- Filled in correct password
field.
- Filled in correct
confirmation password
field.
- Filled in correct your email
field. Clicked on Create
My Account button.
Register - Clicked on Back to Login System redirect user to
Page. login page.
Email - Filled in correct your email System send a message and
address field. redirect user to login page
- Filled in correct subject page.
field.
98

- Filled in correct message


field. Clicked on Send
Email button.
Email - Clicked on Back to Login System redirect user to
Page. login page.
Login - Clicked on Yahoo Icon. System redirect user to
yahoo messenger login
page.
Main Page - Clicked on Home. System redirect user to
Home page.
Main Page - Clicked on Salary System redirect users to
Management. Salary Management page,
and the system will be
updated the database
automatically.
Salary - Filled in Monthly Salary Two expected results:
Management field. System shows one
Page - Filled in age field. result, consist of total
- Choose do you have a side income, total expenses,
job radio button. and the rest of monthly
- Filled in your side job salary in one month.
income field. System shows two
- Choose have you get results which is the real
married radio button. result and suggestion
- Choose do you have a result. Each result
children radio button. consist of total income,
- Filled in how many children total expenses, and the
do you have field. rest of monthly salary in
- Choose Children one month.
Occupation droplist.
- Filled in money cost field.
99

- Choose School Status


radio button.
- Filled in child income field.
- Choose House Status
droplist.
- Filled in rental house cost
field.
- Filled in rental house
electricity bills field.
- Choose Already Paid
radio button.
- Filled in credit in month
field
- Choose Electricity Power
droplist.
- Clicked on AC checkbox.
- Filled in AC quantity field.
- Filled in AC power
consumption hour/day field.
- Choose AC priority droplist.
- Clicked on lamp checkbox.
- Filled in lamp quantity field.
- Filled in lamp power
consumption hour/day field.
- Choose lamp priority
droplist.
- Clicked on refrigerator
checkbox.
- Filled in refrigerator
quantity field.
- Filled in refrigerator power
consumption hour/day field.
100

- Choose refrigerator priority


droplist.
- Clicked on rice cooker
checkbox.
- Filled in rice cooker
quantity field.
- Filled in rice cooker power
consumption hour/day field.
- Choose rice cooker priority
droplist.
- Clicked on water pump
checkbox.
- Filled in water pump
quantity field.
- Filled in water pump power
consumption hour/day field.
- Choose water pump priority
droplist.
- Clicked on computer
checkbox.
- Filled in computer quantity
field.
- Filled in computer power
consumption hour/day field.
- Choose computer priority
droplist.
- Clicked on washing
machine checkbox.
- Filled in washing machine
quantity field.
101

- Filled in washing machine


power consumption
hour/day field.
- Choose washing machine
priority droplist.
- Clicked on tv checkbox.
- Filled in tv quantity field.
- Filled in tv power
consumption hour/day field.
- Choose tv priority droplist.
- Clicked on iron checkbox.
- Filled in iron quantity field.
- Filled in iron power
consumption hour/day field.
- Choose iron priority
droplist.
- Choose Do you have car
radio button
- Filled in how many cars do
you have field.
- Choose Car Type droplist.
- Choose Fuel Type
droplist.
- Filled in average distance
car per day inside town field
- Filled in average distance
car per day outside town
field.
- Choose Priority car
droplist.
102

6.3.3 Negative Testing Scenario

The negative testing scenario provides the system with the incorrect input. In

order to determines whether the application does what it is supposed to do based on its

functional requirements. Table 6.2 shows the negative scenario tests.

Table 6.2 Testing Scenario Negative Test

Module
Scenario Expected Result
Name
Login - Leave username field System shows error message,
blank. User Name & Password is
- Leave password field mandatory
blank.

- Clicked on login
button.
Login - Filled in correct Three expected results:
username field System shows error message,
- Filled in incorrect Password is Mandatory
password field If the username is correct, the
- Clicked on login system will increase the status
button. by1.
If the username status reach
three, the system shows error
message, Your ID is already
blocked by Administrator,
Please contact us to get some
information by email at
romy10010001@yahoo.com
Login - Filled in correct If the username is locked
username field (because of the user didnt do
103

- Filled in correct logout when they want to exit the


password field application), the system show
- Clicked on login error message, Your ID is still
button. login
Register - Filled in incorrect System shows error message,
minimum length Minimum User Name is 4
username field. character
- Filled in incorrect Maximum User Name is 20
maximum length character
username field. Minimum Password is 4
- Filled in incorrect character
minimum length Maximum Password is 20
password field. character
- Filled in incorrect Confirmation Password field
maximum length cannot be different with
password field. Password field
- Filled in incorrect Invalid email format
confirmation password
field (doesnt match with
password field).
- Filled in incorrect format
email field.
- Clicked on Create My
Account button.
Email - Filled in incorrect your System shows error message,
email address field. Invalid email format
- Leave your email field Email is mandatory
blank. Subject is mandatory
- Leave subject field blank. Message is mandatory
- Leave message field
blank.
104

- Clicked on Send Email


button.
Main Page - Leave monthly salary System shows error message,
field blank. Monthly Salary you specified is
- Leave age field blank. invalid
- Choose yes radio Age you specified is invalid
button Do you have a Side Job Income must be filled
side job, but Leave your How many children do you have
side job income field must be filled
blank. Rental House cost must be
- Choose yes, of course filled
radio button Do you You need to choose one of the
have a children, but Household Appliance
Leave how many AC Quantity or AC Power
children do you have Consumption must be filled
field blank. Lamp Quantity or Lamp Power
- Choose Rental House Consumption must be filled
house status droplist, but Refrigerator Quantity or
Leave Rental House Cost Refrigerator Power Consumption
field blank. must be filled
- Choose My House Rice Cooker Quantity or Rice
house status droplist but Cooker Power Consumption
not check list all of the must be filled
household appliance. Water Pump Quantity or Water
- Checklist ac checkbox Pump Power Consumption must
but leave ac quantity and be filled
power consumption Computer Quantity or
blank. Computer Power Consumption
- Checklist lamp checkbox must be filled
but leave lamp quantity Washing Machine Quantity or
and power consumption Washing Machine Power
blank. Consumption must be filled
105

- Checklist refrigerator TV Quantity or TV Power


checkbox but leave Consumption must be filled
refrigerator quantity and Iron Quantity or Iron Power
power consumption Consumption must be filled
blank. How many cars do you have is
- Checklist rice cooker mandatory
checkbox but leave rice How many motorcycle do you
cooker quantity and have is mandatory
power consumption
blank.
- Checklist water pump
checkbox but leave water
pump quantity and power
consumption blank.
- Checklist computer
checkbox but leave
computer quantity and
power consumption
blank.
- Checklist washing
machine checkbox but
leave washing machine
quantity and power
consumption blank.
- Checklist tv checkbox
but leave tv quantity and
power consumption
blank.
- Checklist iron checkbox
but leave iron quantity
and power consumption
blank.
106

- Choose Yes I have Do


you have a car radio
button, but leave how
many cars do you have
field blank.
- Choose Yes I have Do
you have a motorcycle
radio button, but leave
how many motorcycle do
you have field blank.
CHAPTER VII

CONCLUSION

7.2 Conclusion

Developing Online Expert Money Manager by Valley First application can help

people to manage their own monthly salary. This thesis proves that it is possible to

create software needed by many people through simple approach. The application itself

is built as a web application under struts 2 Framework. It provides managers with the

information and knowledge they need to support operational decisions and to

understand the financial implications of decisions before they are made. It also enables

managers to monitor their decisions for any potential financial implications and for

lessons to be learned from experience.

At the end of this application, it will show final result based on user input and

combine with the data from internet, so the programmer hopefully the final result of

this application can satisfying the user even not 100% accurate, because each website

has its own opinion about household appliance, but still there is some information that

100% accurate like fuel price type.

107
108

7.2 Suggestion & Future Work

There are also some suggestions that may be done with the development of the

system in the future, so the system can fulfill more satisfaction for the user. Here is the

suggestions list:

1. Application Interface.

In the current condition, The Online Expert Money Manager by Valley First

application interface is created by using HTML, in the next development, the

application interface can be re-design to be more interesting like using CSS,

animation, add some picture, etc.

2. Company Salary Management.

Company salary management will be added in the next development.

Nowadays, there are so many company around us, the complicated of

management can made the company have some trouble when managing their

own company financial. It will very useful for every company if the programmer

develop this feature.

3. Salary Management Female.

The differences between Male and Female needs in daily life give an opinion in

the programmer minds that Salary Management have to divided into two types

which is female and male. In the current condition the application only provide

salary management for male, so in the next development, Salary Management

Female will be added.


REFERENCES

[1] What can help in decision making?. [PDF] -

Article from Hana Kopkov, Markta krobkov

Institute of System Engineering and Informatics, Faculty of Economics and

Administration, University of Pardubice

[2] Wikipedia Java SE - (Java) (retrieved December ,2012)

http://en.wikipedia.org/wiki/Java_Platform,_Standard_Edition

[3] Wikipedia Java EE - (Enterprise Edition) (retrieved December,2012)

http://en.wikipedia.org/wiki/Java_Platform,_Enterprise_Edition

[4] Wikipedia Hibernate - (retrieved December,2012)

http://en.wikipedia.org/wiki/Hibernate_(Java)

[5] Struts Jakarta Project (retrieved December,2012)

http://struts.apache.org/primer.html

[6] Accompa. [Online] - (retrieved February,2013)

http://www.accompa.com/product-management-blog/2009/09/19/use-cases-
definition-requirements-management-basics/.

[7] Margaret Rouse, Expert System

http://searchcio-midmarket.techtarget.com/definition/expert-system

[8] Pengantar Sistem Pakar (Expert System)

http:// informatika-unkris.ac.id/img/buku/sistem-pagookar-5.pdf

[9] Valley First (Financial Services Industry)

https://en.wikipedia.org/wiki/Valley_First

109
110

APPENDINCES

Here are the lists of the rule that is used during the Process:

IF haveChild = YES

THEN showExpertFieldChildQ

ELSE hideExpertFieldChildQ

IF haveHouse = YES

THEN showExpertFieldHouseQ

ELSE showCustomFieldHouseQ

IF haveMotorCycle = YES

THEN showExpertFieldMotorQ

ELSE showCustomFieldMotorQ

IF haveCar = YES

THEN showExpertFieldCarQ

ELSE showCustomFieldCarQ

IF savingMoney = YES

THEN showExpertMoneyQ

ELSE hideExpertMoneyQ

Вам также может понравиться