NPM : 18111131
the Gunadarma University. All quotation is any form have been following the
rules and ethics. Regarding the contents of the writing is the responsibility of
the Author, not the Gunadarma University. This statement has been made
Jakarta, 2015
ii
VALIDATION PAGE
Advisory Comitee
No Name Position
Board of Examiners
No Name Position
Acknowledged by
Defense Examination
iii
ABSTRACT
(XIII + 78 + appendix)
often require the latest data of banking balance. The report that has been
submitted by the banks are not in the same format. It makes the regulator
and stakeholders dicult to manage the data optimally. Beside it, the re-
ports are not really exible to be processed due to the format le in pdf or
other format that cannot be edited, This problem can be solved by XBRL
then convert into XBRL. When create XBRL-based reporting, need taxon-
Bibliography(1998-2015)
iv
PREFACE
Praise and thanks to ALLAH SWT, for all the blessing so this work
can be nished. This work was made to complete the requirement to nish
person who gave not only assistance in morale goodness but also material
for this work. It is impossible to name every person, however, author will
gram.
v
9. My beloved family, Abdul Hadi (Father), Eni Nurani (Mother), and
10. All SarMag lectures and stas for their information support and their
earnest care.
11. All my friends, especially in Sarjana Magister (SarMag) SI-02 for a lot
12. All parties can not mention who have helped this nal settlement, re-
searcher also say thank you for all the help and advice.
order to make better work in the future. This work is expected to bring
vi
Contents
COVER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . i
ABSTRACT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iv
PREFACE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v
CONTENTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii
Chapter I : INTRODUCTION . . . . . . . . . . . . . . . . . 1
1.1 Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2.2 Bank . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
vii
2.3.2 Financial Report User . . . . . . . . . . . . . . . . . . 15
2.4 Tagging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.5 XBRL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.7 Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.7.4 Flowchart . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.7.5 Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.7.7 Library . . . . . . . . . . . . . . . . . . . . . . . . . . 29
viii
3.2.8 Label Form Synonim Denition . . . . . . . . . . . . . 37
4.2 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.3 Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
ix
4.3.1 Scenario Testing . . . . . . . . . . . . . . . . . . . . . 62
5.1 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
BIBLIOGRAPHY . . . . . . . . . . . . . . . . . . . . . . . . . 71
APPENDIX
x
List of Figures
xi
4.3 XDANA Logo . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
xii
List of Tables
xiii
Chapter I
INTRODUCTION
1.1 Background
ing money, withdraw, transfer, and pay bills. Based on data from Bank of
in Indonesia are 119 bank with 19.207 oces. If Sharia Banks added, the
2014)
an important part and can not be separated from the whole process. A large
and Bank B. Form types, like withdrawal form, payments form , and transfer
form are also have dierent format according to the needs of each banks.
Besides, process of input data into the system is still conducted manually
customer has to wait when a teller or other employee do input data so that
require the latest data of banking balance. The data will be used as an input
for policy recommendations and publication needs. However, the report that
1
2
has been submitted by the banks are not in the same format. It makes the
regulator and stakeholders dicult to manage the data optimally. Beside it,
the reports are not really exible to be processed due to the format le in
To solve this problems, the regulator has set the standard information
electronic communication that used universally for the transmission and ex-
process of preparation, analysis and accuracy for various parties that used
report.
adopts boston's, that is about XBRL technology. his paper covers motivation
and basics of ontology presentation data for business report and metadata
XBRL is a format of nancial report that are used in more than 20 big
countries around the world, like United States, China, France, and Den-
facilitate the investor, bank and other stakeholder to use the data optimally.
banking.
format. After having the result of the test, this study will be used by the
banks to improve the eciency, upgrade the services, and ease the data
processing using XBRL. In addition, the study will make the process of
that, the information that will be used for decision making is more qualied
and up to date.
methods or steps:
these application.
the scope of the research, research objective, research method, and structure
and black box method. Chapter three, this chapter described on the analysis
of how the planning and design of the system. Chapter four, this chapter will
the research and future work, in order to make a better solution to solve the
problem.
Chapter II
LITERATURE REVIEW
6
7
to exchange data or information, and each other can use the data or informa-
system that has a dierent type of software, databases, data modeling, and
Table 2.1.
- Recovery System
- Operating System
- Hardware System
Based on the results of the mapping in Table 2.1, the obtained two types
(a) syntactic diversity, species diversity has been started from a tra-
is
or text.
iii. conict scaling data items, for example the denition of in-
diversity are:
ii. subclass, a concept which has the same label does not neces-
explaining a relation.
set.
the system to combine the information received with other sources and
gure.
2.2 Bank
which have been oered. Financial institutions that are intermediaries of par-
ties who have excess funds (surplus of funds) with those who lack funds (lack
intermediary)(Muchdarsyah, 2005).
12
its activities in the eld of public nance and withdrawal of money and the
more clearly in the formal decision of the Minister of Finance No. Kep.729 /
are all entities on the activities in the nancial sector as mentioned in Article
the investments of the company . General activities carried out by the bank
in full is:
1. Raise funds from the public in the form of demand deposits, savings or
deposit.
2. Give credit.
4. Buy, Sell or warrant at his own risk, or for the benet of and at the
behest of customers.
5. Moving good money for their own interests or the interests of customers.
6. Placing the funds, guarantee funds from, or lend funds to other parties,
9. Perform day-care activities for the benet of the other party pursuant
to a contract.
13. Perform foreign exchange operations to meet the conditions set BI.
16. Acting as the founder of the pension fund and pension fund trustees in
17. Buying all or part of the collateral either through auction or bidding
18. Perform other activities commonly conducted by the bank to the extent
There are various types of forms at the bank. Among them are as follows:
1. Deposit form
2. Withdrawal form
3. Transfer form
(Soemarso, 2004) The nancial statements are statements that are designed
for decision makers, especially the outside of the company, regarding the -
.
and cash ows of the entity that will benet the majority of users in making
economic decisions, reports . The nancial statements also show the results
15
that include: assets, liabilities, equity, revenues and expenses, including gains
as owners and cash ow . That information, along with other information
predicting future cash ows and in particular, in terms of the timing and
business creditors, customers, governments and other agencies and the pub-
lic. They use nancial statements to meet some of the needs of dierent
(a) Investors
Investors are at risk and their advisors are concerned with the inherent
risks and the results of the development of the investment they are
(b) Employee
Employees and the groups that represent them are interested in in-
are also interested in information that enables them to assess the abil-
employment opportunities.
(c) Lender
that enables them to decide whether the amount owed will be paid at
maturity.
(e) Customers
on the company.
(f ) Government
Governments and agencies under his authority concerned with the al-
tax policy as a basis for preparing the national income statistics and
other statistics.
17
(g) Society
Balance of the company presented in such a way that the nancial position of
for a certain period (Munawir, 2000: 26). Then the statement of changes in
net assets or wealth during the period specied. After that, the cash ow
in net assets of the company, its nancial structure (including liquidity and
solvency) and the ability to aect the amount and timing of cash ows in
one is the notes to the nancial statements, this component contains heading
in the balance sheet, income statement and cash ow statement and must be
2.4 Tagging
tags) to identify images or text within their site as a categories or topic. Web
pages and blogs with identical tags can then be linked together allowing
users to search for similar or related content. If the tags are made public,
online pages that act as a Web-based bookmark service are able to index
them. tags can be created using words, acronyms or numbers. Tags are also
called tagging, blog tagging, folksonomies (short for folks and taxonomy), or
formatted. Tags are used by all format specications that store documents
as text les. This includes SGML and HTML. Tag is to mark a section of a
2.5 XBRL
and analysis of data that require disclosure, through a unique tagging struc-
particular type of application and especially not for certain accounting stan-
dards. XBRL Taxonomy fall into three main categories: general purpose
ing, and general ledger taxonomy, Baldwin (2006). Linkage of data points,
ure 2.2.
known to each data-specic and specic data. These tags can easily be read
20
tag on all the information that works like a barcode. XBRL is composed
ples of data items in question is the depreciation expense or net income. Tag
identier can also provide information that is more complex, for example,
more, XBRL also enables labeling / name of an item of data in any language,
other information.
XBRL able to show linkage data items to each other. Thus, XBRL able to
show the underlying calculation of a data item. XBRL is also able to classify
companies and other organizations can adapt XBRL to meet special needs.
XBRL format with the software. Furthermore, the information that can be
that contains elements of XBRL and XBRL Taxonomy known (XBRL Tax-
tags to each item of data. For example, in the nancial statements based on
software that uses XML data tags to describe business and nancial infor-
mation for public and private companies and other organizations. This
the data tag. Another important fact, which is expressed by this denition
XBRL free and open standard, which means that there are no license fees to
be paid by users.
the data used in a way that is new and innovative. Interactive word indicates
information can also be included in their denition of XBRL. The fact that
and more easily sorted and compared. Computers do not have the knowledge
ure 2.3 Telling a computer system that net sales of 131.383 would be useless
without dening a number that represents (net sales), the reported currency
(dollars), scaling and rounding (thousands), the period covered (2013), and
XBRL Taxonomy serves as a dictionary for XBRL. These are the cate-
gorization schemes which dene the specic tags for individual items of data
ulations, so each may have its own taxonomy for nancial reporting. Many
panies, may require taxonomies to cover their own business reporting needs.
dictionary is a categorization scheme that denes a special tag for each el-
ement of the nancial data (eg net income). National jurisdictions have
dierent accounting rules, so that each national jurisdiction can have its own
23
taxonomy to meet the needs of their business. A taxonomy can also be de-
an organization.
2.7 Tools
that the UML is only one part of software development method (Jacobson,
and diagrams.
Use case diagram shows a set of use cases, actors, and the relationships
that occur between the use cases and actors. Use case describes how the
actors interact with the system. The actor is an external entity that plays
a role when interacting with the system. Actors can be either a user or an
in the system, the starting point of each ow, a decision that may occur,
and the end of the event ow.This diagram is equipped with a ow branch-
the ow of activity in the system. Activity diagrams can be used to model
groups according to their responsibilities within the organization can use the
several swimlane, each activity can only be on one swimlane, but transactions
2.7.4 Flowchart
symbol and contains a short description of the process step. The ow chart
symbols are linked together with arrows showing the process ow direction.
A owchart typically shows the ow of data in a process, detailing the oper-
play a vital role in the programming of a problem and are quite helpful
owchart is drawn, it becomes easy to write the program in any high level
language. Often we see how owcharts are helpful in explaining the program
to others. Hence, it is correct to say that a owchart is a must for the better
2.7.5 Java
Gosling while still joined Sun Microsystems which is now a part of Oracle
(bytecode) and can run on dierent Java Virtual Machine (JVM). Java is a
possible. Because the functionality that allows Java applications can run on
several dierent operating system platforms. Until this saati Java has been
plications. The goal is to add the components that can not be made in the
base text. These components can include buttons, images, menus and other
common components. The goal is to allow a user to use the program that
created it. Three steps are common to all Java GUI applications is the for-
mation of the container, the layout of GUI components and event handling.
Java has 2 pieces of the package that is used to display a GUI, which is AWT
AWT GUI toolkit is the rst in the Java programming language, but
Applications built using AWT will look like a native application that,
if the application is built using AWT is run on Windows then this app
will look like common Windows applications on it, and so also if run
Java GUI supports development through AWT. AWT is the Java equiv-
27
check box.
2. Swing
most all Swing components are lightweight (lighter, not connected with
(a) Top-Level Containers are the components that are at the top of
(d) Basic Controls is a component that serves as the input data for
the user.
the user.
28
for developing with Java, PHP, C++, and other programming languages.
All the functions of the IDE are provided by modules. Each module
provides a well dened function, such as support for the Java language, edit-
ing, or support for the CVS versioning system, and SVN. NetBeans contains
all the modules needed for Java development in a single download, allowing
can be added by installing additional modules. For instance, Sun Studio, Sun
Java Studio Enterprise, and Sun Java Studio Creator from Sun Microsystems
From July 2006 through 2007, NetBeans IDE was licensed under Sun's
the Mozilla Public License (MPL). In October 2007, Sun announced that
and the GPL version 2 licenses, with the GPL linking exception for GNU
Classpath
2. Compiler,is facility to check the syntax of the source code and then
29
that the compiler generated binary data into a single unit and into a
2.7.7 Library
1. XBRL Core, Set of Java classes to create, access, edit and validate
ing XML documents. Xerces 2.x introduced the Xerces Native Inter-
Xerces2 parser using standard interfaces like JAXP, DOM, and SAX.
3. log4j, The log4j package is designed so that these statements can re-
log statements are output at arbitrarily ne granularity but also great
ease. This helps to reduce the volume of logged output and the cost of
The methodology used in this research includes various phases that will
31
32
When doing transactions in the bank, the customer must ll out a form
provided in the bank. For example, if the customer wants to make a transac-
tion, the customer must ll out a withdrawal form bank. Then the customer
gives the form to the bank employees and bank employees do validation.
Bank employees match the data that has been written by a customer with
the bank database. Activity Diagram of the process can be seen in Figure
3.4.
In gure 3.5 the process where bank employee must checking customer
ing new innovation in the bank sector. The rapid development of technology
port format.
pleted form by the customer will be given to bank employee for next process.
Bank employee will check the data and input the data manually , thus in-
creasing the risk of human errors. In addition, this process of requires a long
time and often complained by the customer. For that, the necessary role of
Based on the problem from current system, the solution is create system
that implement XBRL format. The system to be developed is any form will
35
scan by scanner to be convert into image le or pdf le. After that, this le
this le tagging to create XBRL le. In the tagging process require taxonomy.
Customer data and taxonomy required to create cash ow report. Cash ow
report is part of nancial report. This system can be seen in gure 3.6.
and create XBRL le. Withdrawal form focus of research and taxonomy
The data colletion dening a variety of information and things that are
Syariah, Bank BRI, Bank Bukopin, Bank DKI, Bank DKI Syariah,
1. Display the contents from withdraw form le in order to allow the user
to change the content in case of errors in the process changing the image
2. Display the result of customer data that has been formed as XBRL
37
Non fuctional requirements are the thigs that needed in making applica-
tion, consist of hardware and software. Table 3.1 shows the non functional
requirement
No Hardware Software
1. Processor: 800MHz Intel Pentium III Microsoft Windows 7
This application was developed to make the process of get customer data
and turn it into XBRL. But before running several pre-processing stage.
In gure 3.7, rst and second step is process to get customer data and
38
In this stage, we make the synonym of the withdraw form label. Table
that dening the synonim of the form label can be seen in Figure 3.8.
2. Nama
3. Tanggal
4. Jenis Rekening
4.1. TAPRES
4.2. TAHAPAN
5. Sejumlah
6. Terbilang
7. Jenis Penarikan
7.1. Tunai
7.2. Pemindahan
2. Nama Pemilik
a. Penduduk
b. Bukan Penduduk*
3. Tanggal
4. Jenis Rekening
5. Jumlah Penarikan
6. Terbilang
7. Keterangan
8.1. IDR
8.2. USD
8.3. .......
2. Nama Pemilik
a. Penduduk
b. Bukan Penduduk*
3. Tanggal
4. Jenis Rekening
5. Jumlah Penarikan
6. Terbilang
7. Keterangan
8.1. IDR
8.2. USD
8.3. .......
2. Nama/Name
3. Jumlah/Amount
5. Rupiah
6. Branch
7. Alamat/Adress
3. TANGGAL/Date
4. JENIS REKENING
4.1. TABUNGAN
4.3. LAINYA
5. JUMLAH/Amount
6. TERBILANG/In Words
7.1. RUPIAH
7.2. USD
7.3. LAINNYA
8. VALIDASI
3. Jakarta
4. Jenis Rekening
4.2. Monas
4.3. Tabunganku
4.4. Lainnya......
5. Jumlah Penarikan
6. Terbilang
8. Nomor Telepon
9. Nomor Handphone
3. Jakarta
4. Simpeda Syariah
5. Nominal
6. Terbilang
7. Rupiah
8. Valas
9. ..........
3. tanggal date
4. JUMLAH
6. BERITA
7. VALIDASI
3. Tanggal Date
4. JENIS REKENING
5. JUMLAH Amount
6. TERBILANG In Words
7. Keterangan
8.1. RUPIAH
Transaction
12.1. LOKAL
4. Terbilang
5. Mata Uang/Currency
5.1. Rupiah/Rupiah
Exchange code
2. Nama Nasabah
3. Tanggal/Date
4. Jumlah
5. Terbilang
6. Jenis Penarikan
9. Jenis ID/No.ID
10. Alamat/No.Telp
11. Validasi
13.2. Tunai
2. Atas Nama
3. Tanggal
4. Jenis Rekening
4.1. Tahapan
4.2. Windu
4.3. Kentjana
4.4. ......
5. sejumlah
6. Terbilang
7. Jenis Penarikan
7.1. Tunai
7.2. Pemindahan
8. Validasi
After describing the contents from all withdraw form, then nd the label
that has same meaning. If there is the english label in the form, use google
label Date" and Account Number". While, if there is label in Bahasa, nd
the similar meaning in kbbi.web.id and classify in same group. For example,
Account holder and cutomer name. Both labels is written dierently in many
46
forms but has the same meaning. This process can be seen in gure 3.9.
So, the function of the synonym table is to simplyfy the application pro-
cess and to ease the nding process of costumer data. Synonim Table of
ing/Account Number
gal
REKENING
Amount, Jumlah
BILANG In Words
In this stage, application look for the words that has already dened in
data process be will explained in next subsection. This process can be seen
in gure 3.10.
to label in withdrawal form. The customer data that taken from the form are
customer name, account number, branch, date, total, calculated and bank
name. Seventh data is taken because the data is generally located on the
49
The next stage is a tag customer data and convert it into XBRL format.
In this stage, customer data has to match the tag correspond to the taxonomy
This aplication design use UML (Unied Modeling Language) and Flowchart
Diagram.
50
Use case diagram shows a set of use cases, actors, and the relationships
that occur between the use cases and actors. Use case describes how the
actors interact with the system. This application used by bank employee.
In this application bank employee can see the content of withdrawal form.
Beside that, bank employee can edit customer data if an error occurred and
Figure 3.14 shows how user can use the application. To run the applica-
tion, user has to take the withdraw form from the PC. Then, user can make
some corrections on that le. If it is correct, user can go to the next step to
level, there is a box that represent main menu window. When the user starts
using it, main menu window will display. In the second level, there are File
menu and Help menu. In the File menu, there is a Open menu to open the
the interface design from .The interface design that will be explained is Main
Menu and Result. All the language in this application is using Indonesian
Main menu interface is the display when this application is opened. There
are File menu and Help menu. In the File menu, there is a Open submenu
to open the form le and Exit submenu to close the application. After user
open the withdraw form le, the content of the form will display on the Text
area and automatically display the consumer data on each text eld. Convert
54
Result interface is the ouput form after user click the convert button. The
form has already displayed the customer data in XBRL format. The design
of Result form can be seen in Figure 3.17. In line with Main menu, there is
File menu and Help menu in the rst level. The output of the application
deliver nancial reports for 2012. Before creating XBRL report, PT Alpha
called taxonomy. All the components required in the creating nancial report
associated with the taxonomy used. After the instance document has been
created, it is automatically created two les, les XBRL and le taxonomy.
56
57
xmlns:iso4217="http://www.xbrl.org/2003/iso4217"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
4 <link:schemaRef xlink:type="simple" xlink:href="icm-bs-2006-07-31.xsd"/>
5 <link:schemaRef xlink:type="simple" xlink:href="icm-bs-2006-07-31-audited.xsd"/>
6 <xbrli:context id="Prior_AsOf_Audited">
7 <xbrli:entity>
8 <xbrli:identifier scheme="www.bapepam.go.id/showcase/alpha">Alpha</xbrli:identifier>
9 </xbrli:entity>
10 <xbrli:period>
11 <xbrli:instant>2004-12-31</xbrli:instant>
12 </xbrli:period>
13 <xbrli:scenario>
14 <icm-bs-a:Audited/>
15 </xbrli:scenario>
16 </xbrli:context>
17 <xbrli:context id="Current_Period_Audited">
18 <xbrli:entity>
19 <xbrli:identifier scheme="www.bapepam.go.id/showcase/alpha">Alpha</xbrli:identifier>
20 </xbrli:entity>
21 <xbrli:period>
22 <xbrli:startDate>2005-01-01</xbrli:startDate>
23 <xbrli:endDate>2005-12-31</xbrli:endDate>
24 </xbrli:period>
25 <xbrli:scenario>
26 <icm-bs-a:Audited/>
27 </xbrli:scenario>
28 </xbrli:context>
29 <xbrli:context id="Current_AsOf_Audited">
30 <xbrli:entity>
31 <xbrli:identifier scheme="www.bapepam.go.id/showcase/alpha">Alpha</xbrli:identifier>
32 </xbrli:entity>
33 <xbrli:period>
34 <xbrli:instant>2005-12-31</xbrli:instant>
35 </xbrli:period>
36 <xbrli:scenario>
58
37 <icm-bs-a:Audited/>
38 </xbrli:scenario>
39 </xbrli:context>
40 <xbrli:unit id="U-IDR">
41 <xbrli:measure>iso4217:IDR</xbrli:measure>
42 </xbrli:unit>
Completer surce code in appendix page 80. In listing 4.1, explained about
nancial report form PT Alpha. In begining of the report, dislay the infor-
mation about PT Alpha`'s prole like Company Name, address and main
operation. Then display the information about nancial report like inven-
tories, prepaid taxes and xed assets. In listing 4.2, display the taxonomy
from BAPEPAM.
Complete source code in appendix page 86. In Figure 4.1 display PT Alpha`'s
prole and gure 4.2 is an example of the nancial report of cash ows. If
the recipient want to see the PT Alpha information of nancial report, the
receiver needs to take both les. In two les are all information about PT
can be used interactively, because the data in the instance document can be
4.2 Implementation
described in the previous chapter, this stage is divided into three steps they
are Find Words Already Dened in Synonym of Withdrawal Form Label, Get
At this stage each words that have simmilar meaning made array vari-
able. This variable is used as a comparison when checking every line on the
withdrawal form. Because the position of customer data is next to after the
At this stage is opening a text le withdrawal form. Withdrawal form le
that opened as text in UTF-8. Then the program will read each line of the
le.
21 }
In Listing 4.2 identify customer data after withdrawal form le is opened.
Each letter in that le used as lowercase and delete space. Position data
customer is next to the label. Each data identied made methods, such as
prefix.length()) {
20 nmr_rekening = word.substring(prefix.length() + 1);
21 }
22 }
23 }
Customer data that have been identied then tagging using BAPEPAM
taxonomy. After that, XBRL le is created and user can save it.
1
2 public static void convertToXBRL(String nama_nasabah, String nomor_rekening, String
jumlah, String terbilang, String nama_bank, String tanggal, String cabang){
3 DTSFactory ivFactory = DTSFactory.get();
4 try {
5 /**
6 * membaca taxonomy yang sudah ada
7 */
8 DiscoverableTaxonomySet dts = ivFactory.createTaxonomy(new
File("C:\\Users\\Bio\\Downloads\\taxonomy_icm\\icm-bs-2006-07-31.xsd"));
9 Set<DiscoverableTaxonomySet> setDts = new HashSet<>();
10 setDts.add(dts);
11
12 /**
13 * create Instance
14 */
15 Instance instance = new Instance(setDts);
16 instance.addNamespace(NamespaceConstants.XSI_NAMESPACE);
65
17 instance.addNamespace(NamespaceConstants.LINK_NAMESPACE);
18 instance.addNamespace(NamespaceConstants.XLINK_NAMESPACE);
19 instance.addNamespace(Constant.NameSpace.ICM_BS_NAMESPACE);
20 instance.addNamespace(Constant.NameSpace.REF_NAMESPACE);
21 instance.addNamespace(Constant.NameSpace.ICM_BS_A_NAMESPACE);
22 instance.addNamespace(NamespaceConstants.ISO4217_NAMESPACE);
23 instance.addNamespace(NamespaceConstants.XSI_NAMESPACE);
24
25 instance.addSchemaLocation("icm-bs-2006-07-31.xsd","xbrl-bs");
26 //instance.addSchemaLocation("icm-bs-2006-07-31-audited.xsd","xbrl-audited");
27 /* create InstanceUnit
28 */
29 InstanceUnit instanceUnit = new InstanceUnit("U-IDR");
30 instanceUnit.setValue("IDR");
31 instanceUnit.setNamespaceURI(NamespaceConstants.ISO4217_NAMESPACE.getURI());
32 instance.addUnit(instanceUnit);
33
34 /**
35 * create InstanceContext
36 * Prior_AsOf_Audited
37 */
38 InstanceContext icPrior_AsOf_Audited = new InstanceContext("Nomor_Rekening");
39 icPrior_AsOf_Audited.setIdentifier(nomor_rekening);
40 icPrior_AsOf_Audited.setIdentifierScheme(Constant.IDENTIFIER_SCHEMA);
41 icPrior_AsOf_Audited.setPeriodValue(tanggal);
42 //create Scenario
43 Element element = new Element("Audited", Constant.NameSpace.ICM_BS_A_NAMESPACE);
44 icPrior_AsOf_Audited.addScenarioElement(element);
45 instance.addContext(icPrior_AsOf_Audited);
46
47 /**
48 * create InstanceContext
49 * Current_Period_Audited
50 */
51 InstanceContext icCurrent_Period_Audited = new InstanceContext("Nama_Nasabah");
66
52 icCurrent_Period_Audited.setIdentifier(nama_nasabah);
53 icCurrent_Period_Audited.setIdentifierScheme(Constant.IDENTIFIER_SCHEMA);
54 icCurrent_Period_Audited.setPeriodValue(tanggal);
55
56 //create Scenario
57 Element element1 = new Element("Audited",Constant.NameSpace.ICM_BS_A_NAMESPACE);
58 icCurrent_Period_Audited.addScenarioElement(element1);
59 instance.addContext(icCurrent_Period_Audited);
application. The user interface consist of a main menu interface and result
interface.
In gure 4.3 display the logo of XDaNa application (XBRL Data Nasabah).
This logo was created by following XBRL logo. The color of logo is also
consist of a menu bar, text area, seven texteld, seven label and two buttons.
Text area is used to display the content of the withdrawal form le. Below
67
text area contained seven label and texteld. Texteld is used to display
customer data and user can also edit it if there is a mistake. Label is used
to facilitate the user to view customer data. Button save is used to save cus-
of one button and one one textarea. Textarea is used to display customer
data has become XBRL and Button back is used to return to the main menu.
68
4.3 Testing
two types of testing, there are scenario testing and black box testing method.
Withdrawal form le used in this text is `Bank Mandiri Syariah.txt' and
`Bank DKI' are shown in listing 4.5 and listing 4.6. File withdrawal form
was chosen because it has a dierent format to each other. The scenario
in this testing is input le bank withdrawal form. In this testing, customer
data on le bank withdrawal form has been lled. Customer data used are
ctitious data with assumption that the customer data read properly by the
69
25
26 Y 1-1 LOKAL
ANTAR CABANG
27 Atas transaksi ini, agar dibebankan ke rekening: I I Local
interbranch
28 For this transaction, please debit account
29
30 NOMOR REKENING JUMLAH 10.000.000
31 account number 1120931923
Amount
32
33
34 NAMA PEMILIK REKENING Bio Abidzar G
35 account holder's name
36 TERBILANG Sepuluh
Juta Rupiah
37 In Words'
38
39 JENIS REKENING TABUNGAN LAINNYA
40 type of account Saving Other
41 TUJUAN TRANSAKSI
bayaran sekolah
42 Underlying
Transaction
43
44 TANDA TANGAN TELLER TANDA TANGAN PENARIK
45 teller signature Drawer's Signature
46
47
48 AP
001
49 Lembar
1
untuk
Bank
71
1/2
Form used in this testing is a Withdrawal form Bank DKI. The content
1 validasi/validation
2
72
3 SLIP PENARIKAN
BANK DKI
4
5
6 Tanggal
22-3-2003
7 Jenis Rekening Simpeda Monas Tabunganku Lainnya
8
9 Nomor Rekening 1232132132131
10 Nama Pemilik Rekening Fauzi Anwar
11 Nomor Telepon Nomor Handphone
12
13 Jumlah Penarikan 1,000,000
14 Terbilang
15
16 Khusus Penarikan Tunai > Rp. 100.000.000,-
17
18 Tujuan Penggunaan Dana
73
19
20 Ketentuan
21 1. Penarikan sah setelah di validasi atau di tandatangani Teller
Teller Penarik
22 2. Melampirkan fotocopy KTP / SIM / Pasport sesuai ketentuan yang
berlaku.
23 3. Penarikan tunai oleh Penerima Kuasa dengan jumlah > Rp. 100 Juta
wajib mengisi Formulir Data Non Nasabah
data is not found in that le. The result of the testing shown in gure
4.8, it can be seen that the branch data is automatically lled with
kosong values.
Figure 4.9: Testing of Incomplete Customer data has become XBRL Format
The purpose of this test is whether the help menu on the menu bar running
well. In gure 4.10 shows the Help Menu has been executed.
Based on Figure 4.8 it can be concluded that menu help can running well.
75
specied area
3. Show Re- When user click `con- The Application provides Success
4. Show Con- When user check le Content of withdraw form Success
button provided
button save
`Bantuan menu
Menu'
Chapter V
CONCLUSION AND FUTURE WORK
5.1 Conclusion
From the results of application testing that has been done, the conclu-
format. XDaNa take customer data, this data tagging is used BAPEPAM
taxonomy. XDaNa accelerate the process to create nancial report and stan-
Advice that can be given to the development of this system in the future
are follows:
1. Application can use in other form like payment and transfer form and
2. Application can read text which use other le encoding like UTF-16
and UTF-16BE.
77
Bibliography
60.
Gianluca Garbelloto. It`s time for xbrl gl pilots, strategic nance. 2007.
Ivar; James Rumbaugh; Grady Booch Jacobson. The Unied Software De-
35, 404-416.
78
BIBLIOGRAPHY 79
http://www.ojk.go.id/statistik-perbankan-indonesia-november-2014.
2015:www.tutorialspoint.com/uml/.
2015:http://www.webopedia.com/TERM/T/tagging.html.
standard/why/who-else-uses-xbrl/.
APPENDIX
PT Alpha Financial Report in XBRL le
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- Generated by Fujitsu XWand B0054 -->
3 <xbrli:xbrl xmlns:xbrli="http://www.xbrl.org/2003/instance"
xmlns:link="http://www.xbrl.org/2003/linkbase"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:icm-bs="http://www.bapepam.go.id/id/fr/ifrs/ci/id/2006-07-31"
xmlns:ref="http://www.xbrl.org/2004/ref"
xmlns:icm-bs-a="http://www.bapepam.go.id/id/fr/ifrs/ci/id/2006-07-31/audited"
xmlns:iso4217="http://www.xbrl.org/2003/iso4217"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
4 <link:schemaRef xlink:type="simple" xlink:href="icm-bs-2006-07-31.xsd"/>
5 <link:schemaRef xlink:type="simple" xlink:href="icm-bs-2006-07-31-audited.xsd"/>
6 <xbrli:context id="Prior_AsOf_Audited">
7 <xbrli:entity>
8 <xbrli:identifier scheme="www.bapepam.go.id/showcase/alpha">Alpha</xbrli:identifier>
9 </xbrli:entity>
10 <xbrli:period>
11 <xbrli:instant>2004-12-31</xbrli:instant>
12 </xbrli:period>
13 <xbrli:scenario>
14 <icm-bs-a:Audited/>
15 </xbrli:scenario>
16 </xbrli:context>
17 <xbrli:context id="Current_Period_Audited">
18 <xbrli:entity>
19 <xbrli:identifier scheme="www.bapepam.go.id/showcase/alpha">Alpha</xbrli:identifier>
20 </xbrli:entity>
21 <xbrli:period>
22 <xbrli:startDate>2005-01-01</xbrli:startDate>
23 <xbrli:endDate>2005-12-31</xbrli:endDate>
24 </xbrli:period>
80
25 <xbrli:scenario>
26 <icm-bs-a:Audited/>
27 </xbrli:scenario>
28 </xbrli:context>
29 <xbrli:context id="Current_AsOf_Audited">
30 <xbrli:entity>
31 <xbrli:identifier scheme="www.bapepam.go.id/showcase/alpha">Alpha</xbrli:identifier>
32 </xbrli:entity>
33 <xbrli:period>
34 <xbrli:instant>2005-12-31</xbrli:instant>
35 </xbrli:period>
36 <xbrli:scenario>
37 <icm-bs-a:Audited/>
38 </xbrli:scenario>
39 </xbrli:context>
40 <xbrli:unit id="U-IDR">
41 <xbrli:measure>iso4217:IDR</xbrli:measure>
42 </xbrli:unit>
43 <icm-bs:CompanyName xsi:nil="false"
contextRef="Current_Period_Audited">Alpha</icm-bs:CompanyName>
44 <icm-bs:ListedCompanyCode xsi:nil="false"
contextRef="Current_Period_Audited">ONEC</icm-bs:ListedCompanyCode>
45 <icm-bs:Industry xsi:nil="false"
contextRef="Current_Period_Audited">Manufacture</icm-bs:Industry>
46 <icm-bs:MainOperation xsi:nil="false" contextRef="Current_Period_Audited">Heavy
Industry</icm-bs:MainOperation>
47 <icm-bs:AddressLine1 xsi:nil="false" contextRef="Current_Period_Audited">127 Lindon
Square</icm-bs:AddressLine1>
48 <icm-bs:AddressLine2 xsi:nil="false" contextRef="Current_Period_Audited">Konnington JK7
5FE</icm-bs:AddressLine2>
49 <icm-bs:AddressLine3 xsi:nil="false"
contextRef="Current_Period_Audited">London</icm-bs:AddressLine3>
50 <icm-bs:AddressLine4 xsi:nil="false"
contextRef="Current_Period_Audited">England</icm-bs:AddressLine4>
81
51 <icm-bs:ReportingType xsi:nil="false"
contextRef="Current_Period_Audited">Semi-annual</icm-bs:ReportingType>
52 <icm-bs:AuditedUnaudited xsi:nil="false"
contextRef="Current_Period_Audited">Audited</icm-bs:AuditedUnaudited>
53 <icm-bs:CashCashEquivalents xsi:nil="false" decimals="INF"
contextRef="Current_AsOf_Audited" unitRef="U-IDR">14562</icm-bs:CashCashEquivalents>
54 <icm-bs:ShortTermInvestments xsi:nil="false" decimals="INF"
contextRef="Current_AsOf_Audited" unitRef="U-IDR">789</icm-bs:ShortTermInvestments>
55 <icm-bs:NotesReceivables xsi:nil="false" decimals="INF"
contextRef="Current_AsOf_Audited" unitRef="U-IDR">42769</icm-bs:NotesReceivables>
56 <icm-bs:AccountsReceivables xsi:nil="false" decimals="INF"
contextRef="Current_AsOf_Audited" unitRef="U-IDR">86781</icm-bs:AccountsReceivables>
57 <icm-bs:OtherReceivables xsi:nil="false" decimals="INF"
contextRef="Current_AsOf_Audited" unitRef="U-IDR">24569</icm-bs:OtherReceivables>
58 <icm-bs:Inventories xsi:nil="false" decimals="INF" contextRef="Current_AsOf_Audited"
unitRef="U-IDR">245765</icm-bs:Inventories>
59 <icm-bs:PrepaidTaxes xsi:nil="false" decimals="INF" contextRef="Current_AsOf_Audited"
unitRef="U-IDR">16787</icm-bs:PrepaidTaxes>
60 <icm-bs:PrepaidExpenses xsi:nil="false" decimals="INF" contextRef="Current_AsOf_Audited"
unitRef="U-IDR">8293</icm-bs:PrepaidExpenses>
61 <icm-bs:OtherCurrentAssets xsi:nil="false" decimals="INF"
contextRef="Current_AsOf_Audited" unitRef="U-IDR">6271</icm-bs:OtherCurrentAssets>
62 <icm-bs:TotalCurrentAssets xsi:nil="false" decimals="INF"
contextRef="Current_AsOf_Audited" unitRef="U-IDR">446586</icm-bs:TotalCurrentAssets>
63 <icm-bs:RelatedPartyReceivables xsi:nil="false" decimals="INF"
contextRef="Current_AsOf_Audited"
unitRef="U-IDR">3298</icm-bs:RelatedPartyReceivables>
64 <icm-bs:DeferredTaxAssets xsi:nil="false" decimals="INF"
contextRef="Current_AsOf_Audited" unitRef="U-IDR">52657</icm-bs:DeferredTaxAssets>
65 <icm-bs:InvestmentsAssocitatedCompanies xsi:nil="false" decimals="INF"
contextRef="Current_AsOf_Audited"
unitRef="U-IDR">1342578</icm-bs:InvestmentsAssocitatedCompanies>
66 <icm-bs:OtherLongTermInvestments xsi:nil="false" decimals="INF"
contextRef="Current_AsOf_Audited"
unitRef="U-IDR">24536</icm-bs:OtherLongTermInvestments>
82
67 <icm-bs:FixedAssets xsi:nil="false" decimals="INF" contextRef="Current_AsOf_Audited"
unitRef="U-IDR">302733</icm-bs:FixedAssets>
68 <icm-bs:IntangibleAssets xsi:nil="false" decimals="INF"
contextRef="Current_AsOf_Audited" unitRef="U-IDR">18729</icm-bs:IntangibleAssets>
69 <icm-bs:OtherAssets xsi:nil="false" decimals="INF" contextRef="Current_AsOf_Audited"
unitRef="U-IDR">2678</icm-bs:OtherAssets>
70 <icm-bs:TotalNonCurrentAssets xsi:nil="false" decimals="INF"
contextRef="Current_AsOf_Audited"
unitRef="U-IDR">1747209</icm-bs:TotalNonCurrentAssets>
71 <icm-bs:TotalAssets xsi:nil="false" decimals="INF" contextRef="Current_AsOf_Audited"
unitRef="U-IDR">2193795</icm-bs:TotalAssets>
72 <icm-bs:ShortTermLoans xsi:nil="false" decimals="INF" contextRef="Current_AsOf_Audited"
unitRef="U-IDR">34345</icm-bs:ShortTermLoans>
73 <icm-bs:NotesPayables xsi:nil="false" decimals="INF" contextRef="Current_AsOf_Audited"
unitRef="U-IDR">27679</icm-bs:NotesPayables>
74 <icm-bs:AccountsPayables xsi:nil="false" decimals="INF"
contextRef="Current_AsOf_Audited" unitRef="U-IDR">345267</icm-bs:AccountsPayables>
75 <icm-bs:TaxPayables xsi:nil="false" decimals="INF" contextRef="Current_AsOf_Audited"
unitRef="U-IDR">678</icm-bs:TaxPayables>
76 <icm-bs:AccruedExpenses xsi:nil="false" decimals="INF" contextRef="Current_AsOf_Audited"
unitRef="U-IDR">78292</icm-bs:AccruedExpenses>
77 <icm-bs:CurrentPortionLongTermLiabilities xsi:nil="false" decimals="INF"
contextRef="Current_AsOf_Audited"
unitRef="U-IDR">267876</icm-bs:CurrentPortionLongTermLiabilities>
78 <icm-bs:OtherCurrentLiabilities xsi:nil="false" decimals="INF"
contextRef="Current_AsOf_Audited"
unitRef="U-IDR">578987</icm-bs:OtherCurrentLiabilities>
79 <icm-bs:TotalCurrentLiabilities xsi:nil="false" decimals="INF"
contextRef="Current_AsOf_Audited"
unitRef="U-IDR">1333124</icm-bs:TotalCurrentLiabilities>
80 <icm-bs:RelatedPartiesPayables xsi:nil="false" decimals="INF"
contextRef="Current_AsOf_Audited"
unitRef="U-IDR">89879</icm-bs:RelatedPartiesPayables>
81 <icm-bs:DeferredTaxPayables xsi:nil="false" decimals="INF"
contextRef="Current_AsOf_Audited" unitRef="U-IDR">543678</icm-bs:DeferredTaxPayables>
83
82 <icm-bs:LongTermLoans xsi:nil="false" decimals="INF" contextRef="Current_AsOf_Audited"
unitRef="U-IDR">236</icm-bs:LongTermLoans>
83 <icm-bs:LeasePayables xsi:nil="false" decimals="INF" contextRef="Current_AsOf_Audited"
unitRef="U-IDR">12398</icm-bs:LeasePayables>
84 <icm-bs:Bonds xsi:nil="false" decimals="INF" contextRef="Current_AsOf_Audited"
unitRef="U-IDR">267</icm-bs:Bonds>
85 <icm-bs:OtherNonCurrentLiabilities xsi:nil="false" decimals="INF"
contextRef="Current_AsOf_Audited"
unitRef="U-IDR">21980</icm-bs:OtherNonCurrentLiabilities>
86 <icm-bs:SubordinatedLoans xsi:nil="false" decimals="INF"
contextRef="Current_AsOf_Audited" unitRef="U-IDR">210</icm-bs:SubordinatedLoans>
87 <icm-bs:ConvertibleBonds xsi:nil="false" decimals="INF"
contextRef="Current_AsOf_Audited" unitRef="U-IDR">321</icm-bs:ConvertibleBonds>
88 <icm-bs:TotalNonCurrentLiabilities xsi:nil="false" decimals="INF"
contextRef="Current_AsOf_Audited"
unitRef="U-IDR">668969</icm-bs:TotalNonCurrentLiabilities>
89 <icm-bs:TotalLiabilities xsi:nil="false" decimals="INF"
contextRef="Current_AsOf_Audited" unitRef="U-IDR">2002093</icm-bs:TotalLiabilities>
90 <icm-bs:CapitalStocks xsi:nil="false" decimals="INF" contextRef="Current_AsOf_Audited"
unitRef="U-IDR">98720</icm-bs:CapitalStocks>
91 <icm-bs:AdditionalPaidinCapital xsi:nil="false" decimals="INF"
contextRef="Current_AsOf_Audited"
unitRef="U-IDR">78920</icm-bs:AdditionalPaidinCapital>
92 <icm-bs:DifferenceForeignCurrencyTranslation xsi:nil="false" decimals="INF"
contextRef="Current_AsOf_Audited"
unitRef="U-IDR">230</icm-bs:DifferenceForeignCurrencyTranslation>
93 <icm-bs:DifferenceEquityTransactionAssociatedCompanies xsi:nil="false" decimals="INF"
contextRef="Current_AsOf_Audited"
unitRef="U-IDR">2340</icm-bs:DifferenceEquityTransactionAssociatedCompanies>
94 <icm-bs:UnrealizedGainLossAvailableSaleInvestments xsi:nil="false" decimals="INF"
contextRef="Current_AsOf_Audited"
unitRef="U-IDR">120</icm-bs:UnrealizedGainLossAvailableSaleInvestments>
95 <icm-bs:RevaluationIncrementFixedAssetsRevaluation xsi:nil="false" decimals="INF"
contextRef="Current_AsOf_Audited"
unitRef="U-IDR">3109</icm-bs:RevaluationIncrementFixedAssetsRevaluation>
84
96 <icm-bs:StocksOptions xsi:nil="false" decimals="INF" contextRef="Current_AsOf_Audited"
unitRef="U-IDR">213</icm-bs:StocksOptions>
97 <icm-bs:RetainedEarnings xsi:nil="false" decimals="INF"
contextRef="Current_AsOf_Audited" unitRef="U-IDR">7812</icm-bs:RetainedEarnings>
98 <icm-bs:TreasuryStocks xsi:nil="false" decimals="INF" contextRef="Current_AsOf_Audited"
unitRef="U-IDR">238</icm-bs:TreasuryStocks>
99 <icm-bs:TotalEquity xsi:nil="false" decimals="INF" contextRef="Current_AsOf_Audited"
unitRef="U-IDR">191702</icm-bs:TotalEquity>
100 <icm-bs:TotalLiabilitiesEquity xsi:nil="false" decimals="INF"
contextRef="Current_AsOf_Audited"
unitRef="U-IDR">2193795</icm-bs:TotalLiabilitiesEquity>
101 <icm-bs:Revenue xsi:nil="false" decimals="INF" contextRef="Current_Period_Audited"
unitRef="U-IDR">738624</icm-bs:Revenue>
102 <icm-bs:CostSales xsi:nil="false" decimals="INF" contextRef="Current_Period_Audited"
unitRef="U-IDR">324876</icm-bs:CostSales>
103 <icm-bs:GrossProfit xsi:nil="false" decimals="INF" contextRef="Current_Period_Audited"
unitRef="U-IDR">413748</icm-bs:GrossProfit>
104 <icm-bs:OperatingExpenses xsi:nil="false" decimals="INF"
contextRef="Current_Period_Audited" unitRef="U-IDR">37990</icm-bs:OperatingExpenses>
105 <icm-bs:OperatingIncomeLoss xsi:nil="false" decimals="INF"
contextRef="Current_Period_Audited"
unitRef="U-IDR">375758</icm-bs:OperatingIncomeLoss>
106 <icm-bs:OtherIncomeExpenses xsi:nil="false" decimals="INF"
contextRef="Current_Period_Audited"
unitRef="U-IDR">21098</icm-bs:OtherIncomeExpenses>
107 <icm-bs:EquityNetEarningsAssociates xsi:nil="false" decimals="INF"
contextRef="Current_Period_Audited"
unitRef="U-IDR">5678</icm-bs:EquityNetEarningsAssociates>
108 <icm-bs:IncomeLossBeforeTax xsi:nil="false" decimals="INF"
contextRef="Current_Period_Audited"
unitRef="U-IDR">402534</icm-bs:IncomeLossBeforeTax>
109 <icm-bs:TaxExpense xsi:nil="false" decimals="INF" contextRef="Current_Period_Audited"
unitRef="U-IDR">56781</icm-bs:TaxExpense>
110 <icm-bs:IncomeLossNormalActivities xsi:nil="false" decimals="INF"
contextRef="Current_Period_Audited"
85
unitRef="U-IDR">345753</icm-bs:IncomeLossNormalActivities>
111 <icm-bs:ExtraordinaryItems xsi:nil="false" decimals="INF"
contextRef="Current_Period_Audited" unitRef="U-IDR">23098</icm-bs:ExtraordinaryItems>
112 <icm-bs:NetIncomeLoss xsi:nil="false" decimals="INF" contextRef="Current_Period_Audited"
unitRef="U-IDR">322655</icm-bs:NetIncomeLoss>
113 <icm-bs:CashOperating xsi:nil="false" decimals="INF" contextRef="Current_Period_Audited"
unitRef="U-IDR">72618</icm-bs:CashOperating>
114 <icm-bs:CashInvesting xsi:nil="false" decimals="INF" contextRef="Current_Period_Audited"
unitRef="U-IDR">-62768</icm-bs:CashInvesting>
115 <icm-bs:CashFinancing xsi:nil="false" decimals="INF" contextRef="Current_Period_Audited"
unitRef="U-IDR">-8180</icm-bs:CashFinancing>
116 <icm-bs:NetIncreaseCashCashEquivalents xsi:nil="false" decimals="INF"
contextRef="Current_Period_Audited"
unitRef="U-IDR">1670</icm-bs:NetIncreaseCashCashEquivalents>
117 <icm-bs:CashCashEquivalentsBeginningEnding xsi:nil="false" decimals="INF"
contextRef="Current_AsOf_Audited"
unitRef="U-IDR">14562</icm-bs:CashCashEquivalentsBeginningEnding>
118 <icm-bs:CashCashEquivalentsBeginningEnding xsi:nil="false" decimals="INF"
contextRef="Prior_AsOf_Audited"
unitRef="U-IDR">12892</icm-bs:CashCashEquivalentsBeginningEnding>
119 </xbrli:xbrl>
BAPEPAM Taxonomy
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- Generated by Fujitsu XWand B0057 -->
3 <xsd:schema elementFormDefault="qualified" xmlns:link="http://www.xbrl.org/2003/linkbase"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.bapepam.go.id/id/fr/ifrs/ci/id/2006-07-31"
xmlns:xbrli="http://www.xbrl.org/2003/instance"
xmlns:icm-bs="http://www.bapepam.go.id/id/fr/ifrs/ci/id/2006-07-31">
4 <xsd:annotation>
5 <xsd:appinfo>
6 <link:linkbaseRef xlink:type="simple" xlink:href="icm-bs-2006-07-31-presentation.xml"
xlink:role="http://www.xbrl.org/2003/role/presentationLinkbaseRef"
86
xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase"/>
7 <link:linkbaseRef xlink:type="simple" xlink:href="icm-bs-2006-07-31-calculation.xml"
xlink:role="http://www.xbrl.org/2003/role/calculationLinkbaseRef"
xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase"/>
8 <link:linkbaseRef xlink:type="simple" xlink:href="icm-bs-2006-07-31-label-en.xml"
xlink:role="http://www.xbrl.org/2003/role/labelLinkbaseRef"
xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase"/>
9 <link:linkbaseRef xlink:type="simple" xlink:href="icm-bs-2006-07-31-label-id.xml"
xlink:role="http://www.xbrl.org/2003/role/labelLinkbaseRef"
xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase"/>
10 <link:linkbaseRef xlink:type="simple" xlink:href="icm-bs-2006-07-31-reference.xml"
xlink:role="http://www.xbrl.org/2003/role/referenceLinkbaseRef"
xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase"/>
11 <link:roleType
roleURI="http://www.bapepam.go.id/id/fr/ifrs/ci/id/2006-07-31/role/BalanceSheet"
id="BalanceSheet">
12 <link:definition>Balance Sheet</link:definition>
13 <link:usedOn>link:presentationLink</link:usedOn>
14 <link:usedOn>link:calculationLink</link:usedOn>
15 </link:roleType>
16 <link:roleType
roleURI="http://www.bapepam.go.id/id/fr/ifrs/ci/id/2006-07-31/role/IncomeStatement"
id="IncomeStatement">
17 <link:definition>Income Statement</link:definition>
18 <link:usedOn>link:presentationLink</link:usedOn>
19 <link:usedOn>link:calculationLink</link:usedOn>
20 </link:roleType>
21 <link:roleType
roleURI="http://www.bapepam.go.id/id/fr/ifrs/ci/id/2006-07-31/role/CashFlowStatement"
id="CashFlowStatement">
22 <link:definition>Statement of Cash Flow</link:definition>
23 <link:usedOn>link:presentationLink</link:usedOn>
24 <link:usedOn>link:calculationLink</link:usedOn>
25 </link:roleType>
87
26 <link:roleType
roleURI="http://www.bapepam.go.id/id/fr/ifrs/ci/id/2006-07-31/role/CompanyInformation"
id="CompanyInformation">
27 <link:definition>Company Information</link:definition>
28 <link:usedOn>link:presentationLink</link:usedOn>
29 </link:roleType>
30 </xsd:appinfo>
31 </xsd:annotation>
32 <xsd:import namespace="http://www.xbrl.org/2003/instance"
schemaLocation="http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd"/>
33 <xsd:element name="BalanceSheet" id="icm-bs_BalanceSheet" type="xbrli:stringItemType"
substitutionGroup="xbrli:item" abstract="true" nillable="true"
xbrli:periodType="instant"/>
34 <xsd:element name="Assets" id="icm-bs_Assets" type="xbrli:stringItemType"
substitutionGroup="xbrli:item" abstract="true" nillable="true"
xbrli:periodType="duration"/>
35 <xsd:element name="TotalAssets" id="icm-bs_TotalAssets" type="xbrli:monetaryItemType"
substitutionGroup="xbrli:item" nillable="true" xbrli:balance="debit"
xbrli:periodType="instant"/>
36 <xsd:element name="CurrentAssets" id="icm-bs_CurrentAssets" type="xbrli:stringItemType"
substitutionGroup="xbrli:item" abstract="true" nillable="true"
xbrli:periodType="duration"/>
37 <xsd:element name="TotalCurrentAssets" id="icm-bs_TotalCurrentAssets"
type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true"
xbrli:balance="debit" xbrli:periodType="instant"/>
38 <xsd:element name="CashCashEquivalents" id="icm-bs_CashCashEquivalents"
type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true"
xbrli:balance="debit" xbrli:periodType="instant"/>
39 <xsd:element name="ShortTermInvestments" id="icm-bs_ShortTermInvestments"
type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true"
xbrli:balance="debit" xbrli:periodType="instant"/>
40 <xsd:element name="NotesReceivables" id="icm-bs_NotesReceivables"
type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true"
xbrli:balance="debit" xbrli:periodType="instant"/>
88
41 <xsd:element name="AccountsReceivables" id="icm-bs_AccountsReceivables"
type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true"
xbrli:balance="debit" xbrli:periodType="instant"/>
42 <xsd:element name="OtherReceivables" id="icm-bs_OtherReceivables"
type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true"
xbrli:balance="debit" xbrli:periodType="instant"/>
43 <xsd:element name="Inventories" id="icm-bs_Inventories" type="xbrli:monetaryItemType"
substitutionGroup="xbrli:item" nillable="true" xbrli:balance="debit"
xbrli:periodType="instant"/>
44 <xsd:element name="PrepaidTaxes" id="icm-bs_PrepaidTaxes" type="xbrli:monetaryItemType"
substitutionGroup="xbrli:item" nillable="true" xbrli:balance="debit"
xbrli:periodType="instant"/>
45 <xsd:element name="PrepaidExpenses" id="icm-bs_PrepaidExpenses"
type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true"
xbrli:balance="debit" xbrli:periodType="instant"/>
46 <xsd:element name="OtherCurrentAssets" id="icm-bs_OtherCurrentAssets"
type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true"
xbrli:balance="debit" xbrli:periodType="instant"/>
47 <xsd:element name="NonCurrentAssets" id="icm-bs_NonCurrentAssets"
type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true"
nillable="true" xbrli:periodType="duration"/>
48 <xsd:element name="TotalNonCurrentAssets" id="icm-bs_TotalNonCurrentAssets"
type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true"
xbrli:balance="debit" xbrli:periodType="instant"/>
49 <xsd:element name="RelatedPartyReceivables" id="icm-bs_RelatedPartyReceivables"
type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true"
xbrli:balance="debit" xbrli:periodType="instant"/>
50 <xsd:element name="DeferredTaxAssets" id="icm-bs_DeferredTaxAssets"
type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true"
xbrli:balance="debit" xbrli:periodType="instant"/>
51 <xsd:element name="InvestmentsAssocitatedCompanies"
id="icm-bs_InvestmentsAssocitatedCompanies" type="xbrli:monetaryItemType"
substitutionGroup="xbrli:item" nillable="true" xbrli:balance="debit"
xbrli:periodType="instant"/>
89
52 <xsd:element name="OtherLongTermInvestments" id="icm-bs_OtherLongTermInvestments"
type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true"
xbrli:balance="debit" xbrli:periodType="instant"/>
53 <xsd:element name="FixedAssets" id="icm-bs_FixedAssets" type="xbrli:monetaryItemType"
substitutionGroup="xbrli:item" nillable="true" xbrli:balance="debit"
xbrli:periodType="instant"/>
54 <xsd:element name="IntangibleAssets" id="icm-bs_IntangibleAssets"
type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true"
xbrli:balance="debit" xbrli:periodType="instant"/>
55 <xsd:element name="OtherAssets" id="icm-bs_OtherAssets" type="xbrli:monetaryItemType"
substitutionGroup="xbrli:item" nillable="true" xbrli:balance="debit"
xbrli:periodType="instant"/>
56 <xsd:element name="LiabilitiesEquity" id="icm-bs_LiabilitiesEquity"
type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true"
nillable="true" xbrli:periodType="duration"/>
57 <xsd:element name="TotalLiabilitiesEquity" id="icm-bs_TotalLiabilitiesEquity"
type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true"
xbrli:balance="credit" xbrli:periodType="instant"/>
58 <xsd:element name="Liabilities" id="icm-bs_Liabilities" type="xbrli:stringItemType"
substitutionGroup="xbrli:item" abstract="true" nillable="true"
xbrli:periodType="duration"/>
59 <xsd:element name="TotalLiabilities" id="icm-bs_TotalLiabilities"
type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true"
xbrli:balance="credit" xbrli:periodType="instant"/>
60 <xsd:element name="CurrentLiabilities" id="icm-bs_CurrentLiabilities"
type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true"
nillable="true" xbrli:periodType="duration"/>
61 <xsd:element name="TotalCurrentLiabilities" id="icm-bs_TotalCurrentLiabilities"
type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true"
xbrli:balance="credit" xbrli:periodType="instant"/>
62 <xsd:element name="ShortTermLoans" id="icm-bs_ShortTermLoans"
type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true"
xbrli:balance="credit" xbrli:periodType="instant"/>
63 <xsd:element name="NotesPayables" id="icm-bs_NotesPayables"
type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true"
90
xbrli:balance="credit" xbrli:periodType="instant"/>
64 <xsd:element name="AccountsPayables" id="icm-bs_AccountsPayables"
type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true"
xbrli:balance="credit" xbrli:periodType="instant"/>
65 <xsd:element name="TaxPayables" id="icm-bs_TaxPayables" type="xbrli:monetaryItemType"
substitutionGroup="xbrli:item" nillable="true" xbrli:balance="credit"
xbrli:periodType="instant"/>
66 <xsd:element name="AccruedExpenses" id="icm-bs_AccruedExpenses"
type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true"
xbrli:balance="credit" xbrli:periodType="instant"/>
67 <xsd:element name="CurrentPortionLongTermLiabilities"
id="icm-bs_CurrentPortionLongTermLiabilities" type="xbrli:monetaryItemType"
substitutionGroup="xbrli:item" nillable="true" xbrli:balance="credit"
xbrli:periodType="instant"/>
68 <xsd:element name="OtherCurrentLiabilities" id="icm-bs_OtherCurrentLiabilities"
type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true"
xbrli:balance="credit" xbrli:periodType="instant"/>
69 <xsd:element name="NonCurrentLiabilities" id="icm-bs_NonCurrentLiabilities"
type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true"
nillable="true" xbrli:periodType="duration"/>
70 <xsd:element name="TotalNonCurrentLiabilities" id="icm-bs_TotalNonCurrentLiabilities"
type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true"
xbrli:balance="credit" xbrli:periodType="instant"/>
71 <xsd:element name="RelatedPartiesPayables" id="icm-bs_RelatedPartiesPayables"
type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true"
xbrli:balance="credit" xbrli:periodType="instant"/>
72 <xsd:element name="DeferredTaxPayables" id="icm-bs_DeferredTaxPayables"
type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true"
xbrli:balance="credit" xbrli:periodType="instant"/>
73 <xsd:element name="LongTermLoans" id="icm-bs_LongTermLoans"
type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true"
xbrli:balance="credit" xbrli:periodType="instant"/>
74 <xsd:element name="LeasePayables" id="icm-bs_LeasePayables"
type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true"
xbrli:balance="credit" xbrli:periodType="instant"/>
91
75 <xsd:element name="Bonds" id="icm-bs_Bonds" type="xbrli:monetaryItemType"
substitutionGroup="xbrli:item" nillable="true" xbrli:balance="credit"
xbrli:periodType="instant"/>
76 <xsd:element name="OtherNonCurrentLiabilities" id="icm-bs_OtherNonCurrentLiabilities"
type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true"
xbrli:periodType="instant"/>
77 <xsd:element name="SubordinatedLoans" id="icm-bs_SubordinatedLoans"
type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true"
xbrli:balance="credit" xbrli:periodType="instant"/>
78 <xsd:element name="ConvertibleBonds" id="icm-bs_ConvertibleBonds"
type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true"
xbrli:balance="credit" xbrli:periodType="instant"/>
79 <xsd:element name="Equity" id="icm-bs_Equity" type="xbrli:stringItemType"
substitutionGroup="xbrli:item" abstract="true" nillable="true"
xbrli:periodType="duration"/>
80 <xsd:element name="TotalEquity" id="icm-bs_TotalEquity" type="xbrli:monetaryItemType"
substitutionGroup="xbrli:item" nillable="true" xbrli:balance="credit"
xbrli:periodType="instant"/>
81 <xsd:element name="CapitalStocks" id="icm-bs_CapitalStocks"
type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true"
xbrli:balance="credit" xbrli:periodType="instant"/>
82 <xsd:element name="AdditionalPaidinCapital" id="icm-bs_AdditionalPaidinCapital"
type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true"
xbrli:balance="credit" xbrli:periodType="instant"/>
83 <xsd:element name="DifferenceForeignCurrencyTranslation"
id="icm-bs_DifferenceForeignCurrencyTranslation" type="xbrli:monetaryItemType"
substitutionGroup="xbrli:item" nillable="true" xbrli:balance="credit"
xbrli:periodType="instant"/>
84 <xsd:element name="DifferenceEquityTransactionAssociatedCompanies"
id="icm-bs_DifferenceEquityTransactionAssociatedCompanies"
type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true"
xbrli:balance="credit" xbrli:periodType="instant"/>
85 <xsd:element name="UnrealizedGainLossAvailableSaleInvestments"
id="icm-bs_UnrealizedGainLossAvailableSaleInvestments" type="xbrli:monetaryItemType"
substitutionGroup="xbrli:item" nillable="true" xbrli:balance="credit"
92
xbrli:periodType="instant"/>
86 <xsd:element name="RevaluationIncrementFixedAssetsRevaluation"
id="icm-bs_RevaluationIncrementFixedAssetsRevaluation" type="xbrli:monetaryItemType"
substitutionGroup="xbrli:item" nillable="true" xbrli:balance="credit"
xbrli:periodType="instant"/>
87 <xsd:element name="StocksOptions" id="icm-bs_StocksOptions"
type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true"
xbrli:balance="credit" xbrli:periodType="instant"/>
88 <xsd:element name="RetainedEarnings" id="icm-bs_RetainedEarnings"
type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true"
xbrli:balance="credit" xbrli:periodType="instant"/>
89 <xsd:element name="TreasuryStocks" id="icm-bs_TreasuryStocks"
type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true"
xbrli:balance="credit" xbrli:periodType="instant"/>
90 <xsd:element name="IncomeStatement" id="icm-bs_IncomeStatement"
type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true"
nillable="true" xbrli:periodType="duration"/>
91 <xsd:element name="Revenue" id="icm-bs_Revenue" type="xbrli:monetaryItemType"
substitutionGroup="xbrli:item" nillable="true" xbrli:balance="credit"
xbrli:periodType="duration"/>
92 <xsd:element name="CostSales" id="icm-bs_CostSales" type="xbrli:monetaryItemType"
substitutionGroup="xbrli:item" nillable="true" xbrli:balance="debit"
xbrli:periodType="duration"/>
93 <xsd:element name="GrossProfit" id="icm-bs_GrossProfit" type="xbrli:monetaryItemType"
substitutionGroup="xbrli:item" nillable="true" xbrli:balance="credit"
xbrli:periodType="duration"/>
94 <xsd:element name="OperatingExpenses" id="icm-bs_OperatingExpenses"
type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true"
xbrli:balance="debit" xbrli:periodType="duration"/>
95 <xsd:element name="OperatingIncomeLoss" id="icm-bs_OperatingIncomeLoss"
type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true"
xbrli:balance="credit" xbrli:periodType="duration"/>
96 <xsd:element name="OtherIncomeExpenses" id="icm-bs_OtherIncomeExpenses"
type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true"
xbrli:balance="credit" xbrli:periodType="duration"/>
93
97 <xsd:element name="EquityNetEarningsAssociates" id="icm-bs_EquityNetEarningsAssociates"
type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true"
xbrli:balance="credit" xbrli:periodType="duration"/>
98 <xsd:element name="IncomeLossBeforeTax" id="icm-bs_IncomeLossBeforeTax"
type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true"
xbrli:balance="credit" xbrli:periodType="duration"/>
99 <xsd:element name="TaxExpense" id="icm-bs_TaxExpense" type="xbrli:monetaryItemType"
substitutionGroup="xbrli:item" nillable="true" xbrli:balance="debit"
xbrli:periodType="duration"/>
100 <xsd:element name="IncomeLossNormalActivities" id="icm-bs_IncomeLossNormalActivities"
type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true"
xbrli:balance="credit" xbrli:periodType="duration"/>
101 <xsd:element name="ExtraordinaryItems" id="icm-bs_ExtraordinaryItems"
type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true"
xbrli:balance="debit" xbrli:periodType="duration"/>
102 <xsd:element name="NetIncomeLoss" id="icm-bs_NetIncomeLoss"
type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true"
xbrli:balance="credit" xbrli:periodType="duration"/>
103 <xsd:element name="CashFlow" id="icm-bs_CashFlow" type="xbrli:stringItemType"
substitutionGroup="xbrli:item" abstract="true" nillable="true"
xbrli:periodType="duration"/>
104 <xsd:element name="CashOperating" id="icm-bs_CashOperating"
type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true"
xbrli:balance="debit" xbrli:periodType="duration"/>
105 <xsd:element name="CashInvesting" id="icm-bs_CashInvesting"
type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true"
xbrli:balance="debit" xbrli:periodType="duration"/>
106 <xsd:element name="CashFinancing" id="icm-bs_CashFinancing"
type="xbrli:monetaryItemType" substitutionGroup="xbrli:item" nillable="true"
xbrli:balance="debit" xbrli:periodType="duration"/>
107 <xsd:element name="NetIncreaseCashCashEquivalents"
id="icm-bs_NetIncreaseCashCashEquivalents" type="xbrli:monetaryItemType"
substitutionGroup="xbrli:item" nillable="true" xbrli:balance="debit"
xbrli:periodType="duration"/>
94
108 <xsd:element name="CashCashEquivalentsBeginningEnding"
id="icm-bs_CashCashEquivalentsBeginningEnding" type="xbrli:monetaryItemType"
substitutionGroup="xbrli:item" nillable="true" xbrli:balance="debit"
xbrli:periodType="instant"/>
109 <xsd:element name="CompanyInformation" id="icm-bs_CompanyInformation"
type="xbrli:stringItemType" substitutionGroup="xbrli:item" abstract="true"
nillable="true" xbrli:periodType="duration"/>
110 <xsd:element name="CompanyName" id="icm-bs_CompanyName" type="xbrli:stringItemType"
substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration"/>
111 <xsd:element name="ListedCompanyCode" id="icm-bs_ListedCompanyCode"
type="xbrli:stringItemType" substitutionGroup="xbrli:item" nillable="true"
xbrli:periodType="duration"/>
112 <xsd:element name="Industry" id="icm-bs_Industry" type="xbrli:stringItemType"
substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration"/>
113 <xsd:element name="MainOperation" id="icm-bs_MainOperation" type="xbrli:stringItemType"
substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration"/>
114 <xsd:element name="AddressLine1" id="icm-bs_AddressLine1" type="xbrli:stringItemType"
substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration"/>
115 <xsd:element name="AddressLine2" id="icm-bs_AddressLine2" type="xbrli:stringItemType"
substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration"/>
116 <xsd:element name="AddressLine3" id="icm-bs_AddressLine3" type="xbrli:stringItemType"
substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration"/>
117 <xsd:element name="AddressLine4" id="icm-bs_AddressLine4" type="xbrli:stringItemType"
substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration"/>
118 <xsd:element name="ReportingType" id="icm-bs_ReportingType" type="xbrli:stringItemType"
substitutionGroup="xbrli:item" nillable="true" xbrli:periodType="duration"/>
119 <xsd:element name="AuditedUnaudited" id="icm-bs_AuditedUnaudited"
type="xbrli:stringItemType" substitutionGroup="xbrli:item" nillable="true"
xbrli:periodType="duration"/>
120 </xsd:schema>
95
4 import org.jdom.JDOMException;
5 import org.jdom.output.Format;
6 import org.jdom.output.XMLOutputter;
7 import utils.Constant;
8 import xbrlcore.constants.NamespaceConstants;
9 import xbrlcore.exception.XBRLException;
10 import xbrlcore.instance.*;
11 import xbrlcore.taxonomy.Concept;
12 import xbrlcore.taxonomy.DTSFactory;
13 import xbrlcore.taxonomy.DiscoverableTaxonomySet;
14
15 import java.io.File;
16 import java.io.FileOutputStream;
17 import java.io.IOException;
18 import java.io.OutputStream;
19 import java.util.HashSet;
20 import java.util.Iterator;
21 import java.util.Set;
22 import javax.swing.JFileChooser;
23
24 public class xbrl {
25 static String path;
26 public static void convertToXBRL(String nama_nasabah, String nomor_rekening, String
jumlah, String terbilang, String nama_bank, String tanggal, String cabang){
27 DTSFactory ivFactory = DTSFactory.get();
28 try {
29
30 /**
31 * membaca taxonomy yang sudah ada
32 */
33 DiscoverableTaxonomySet dts = ivFactory.createTaxonomy(new
File("C:\\Users\\Bio\\Downloads\\taxonomy_icm\\icm-bs-2006-07-31.xsd"));
34 Set<DiscoverableTaxonomySet> setDts = new HashSet<>();
35 setDts.add(dts);
36
96
37 /**
38 * create Instance
39 */
40 Instance instance = new Instance(setDts);
41 instance.addNamespace(NamespaceConstants.XSI_NAMESPACE);
42 instance.addNamespace(NamespaceConstants.LINK_NAMESPACE);
43 instance.addNamespace(NamespaceConstants.XLINK_NAMESPACE);
44 instance.addNamespace(Constant.NameSpace.ICM_BS_NAMESPACE);
45 instance.addNamespace(Constant.NameSpace.REF_NAMESPACE);
46 instance.addNamespace(Constant.NameSpace.ICM_BS_A_NAMESPACE);
47 instance.addNamespace(NamespaceConstants.ISO4217_NAMESPACE);
48 instance.addNamespace(NamespaceConstants.XSI_NAMESPACE);
49
50 instance.addSchemaLocation("icm-bs-2006-07-31.xsd","xbrl-bs");
51 //instance.addSchemaLocation("icm-bs-2006-07-31-audited.xsd","xbrl-audited");
52 /* create InstanceUnit
53 */
54 InstanceUnit instanceUnit = new InstanceUnit("U-IDR");
55 instanceUnit.setValue("IDR");
56 instanceUnit.setNamespaceURI(NamespaceConstants.ISO4217_NAMESPACE.getURI());
57 instance.addUnit(instanceUnit);
58
59 /**
60 * create InstanceContext
61 * Prior_AsOf_Audited
62 */
63 InstanceContext icPrior_AsOf_Audited = new InstanceContext("Nomor_Rekening");
64 icPrior_AsOf_Audited.setIdentifier(nomor_rekening);
65 icPrior_AsOf_Audited.setIdentifierScheme(Constant.IDENTIFIER_SCHEMA);
66 icPrior_AsOf_Audited.setPeriodValue(tanggal);
67 //create Scenario
68 Element element = new Element("Audited", Constant.NameSpace.ICM_BS_A_NAMESPACE);
69 icPrior_AsOf_Audited.addScenarioElement(element);
70 instance.addContext(icPrior_AsOf_Audited);
71
97
72 /**
73 * create InstanceContext
74 * Current_Period_Audited
75 */
76 InstanceContext icCurrent_Period_Audited = new InstanceContext("Nama_Nasabah");
77 icCurrent_Period_Audited.setIdentifier(nama_nasabah);
78 icCurrent_Period_Audited.setIdentifierScheme(Constant.IDENTIFIER_SCHEMA);
79 icCurrent_Period_Audited.setPeriodValue(tanggal);
80 // icCurrent_Period_Audited.setPeriodStartDate("2005-01-01");
81 // icCurrent_Period_Audited.setPeriodEndDate("2005-12-31");
82 //create Scenario
83 Element element1 = new Element("Audited",Constant.NameSpace.ICM_BS_A_NAMESPACE);
84 icCurrent_Period_Audited.addScenarioElement(element1);
85 instance.addContext(icCurrent_Period_Audited);
86
87
88 /**
89 * create InstanceContext
90 * Current_AsOf_Audited
91 */
92
93 /**
94 * create Fact
95 */
96 xbrl main = new xbrl();
97
98 /**
99 * Fact CompanyName
100 */
101 Fact factCompanyName = new Fact(main.findConceptById("icm-bs_CompanyName",
setDts));
102 factCompanyName.setValue(nama_bank);
103 factCompanyName.setInstanceContext(icCurrent_Period_Audited);
104 instance.addFact(factCompanyName);
105
98
106 /**
107 * Fact ListedCompanyCode
108 */
109
110 Fact factIndustry = new Fact(main.findConceptById("icm-bs_Industry", setDts));
111 factIndustry.setValue("Perbankan");
112 factIndustry.setInstanceContext(icCurrent_Period_Audited);
113 instance.addFact(factIndustry);
114
115 /**
116 * Fact MainOperation
117 */
118
119 /**
120 * Fact AddresLine1
121 */
122 Fact factAddressLine1 = new Fact(main.findConceptById("icm-bs_AddressLine1",
setDts));
123 factAddressLine1.setValue(cabang);
124 factAddressLine1.setInstanceContext(icCurrent_Period_Audited);
125 instance.addFact(factAddressLine1);
126
127 /**
128 *Fact ReportingType
129 */
130 Fact factReportingType = new Fact(main.findConceptById("icm-bs_ReportingType",
setDts));
131 factReportingType.setValue("Semi-annual");
132 factReportingType.setInstanceContext(icCurrent_Period_Audited);
133 instance.addFact(factReportingType);
134
135 /*
136 Simpan file JfileChooser
137 */
138 JFileChooser fileChooser = new JFileChooser();
99
139 fileChooser.setDialogTitle("Specify a file to save");
140
141 int userSelection = fileChooser.showSaveDialog(null);
142 File fileToSave = fileChooser.getSelectedFile();
143 if (userSelection == JFileChooser.APPROVE_OPTION) {
144 System.out.println("Save as file: " + fileToSave.getAbsolutePath());
145 }
146 //String xbrlFile = fileToSave.getAbsolutePath();
147 path = fileToSave.getAbsolutePath();
148 /**
149 * menyimpan instance
150 */
151 InstanceOutputter instanceOutputter = new InstanceOutputter(instance);
152 Document instanceXML = instanceOutputter.getXML();
153 /* outputting XML */
154 XMLOutputter serializer = new XMLOutputter();
155 Format f = Format.getPrettyFormat();
156 f.setOmitDeclaration(false);
157 serializer.setFormat(f);
158 //OutputStream os = new FileOutputStream("D:\\test2.xbrl");
159 OutputStream os = new FileOutputStream(path);
160 serializer.output(instanceXML, os);
161
162
163 } catch (IOException e) {
164 e.printStackTrace();
165 } catch (XBRLException e) {
166 e.printStackTrace();
167 } catch (JDOMException e) {
168 e.printStackTrace();
169 }
170 }
171
172 public Concept findConceptById(String conceptId, Set<DiscoverableTaxonomySet> dts) {
173 Concept concept = null;
100
174 Iterator<DiscoverableTaxonomySet> iterator = dts.iterator();
175 while (iterator.hasNext()) {
176 DiscoverableTaxonomySet next = iterator.next();
177 concept = next.getConceptByID(conceptId);
178 if (concept != null)
179 break;
180 }
181 return concept;
182 }
183 }
101
24 static ArrayList<String> readLines(String path) throws IOException{
25 Charset charset = Charset.forName("UTF-8");
26 Path path2 = FileSystems.getDefault().getPath(path);
27 BufferedReader bf = Files.newBufferedReader(path2, charset);
28
29 String aLine;
30 ArrayList<String> list = new ArrayList<String>();
31
32 while (( aLine = bf.readLine()) != null){
33 byte[] b = aLine.getBytes("UTF-8");
34 aLine = new String(b, "UTF-8");
35
36 aLine = aLine.trim();
37
38 if (!aLine.equals("")) {
39 list.add(aLine);
40 }
41 }
42 bf.close();
43 return new ArrayList<String>(list);
44 }
45
46 public static void getCabang(String word) {
47 for (String prefix: ont_cabang) {
48 if (word.toLowerCase().startsWith(prefix) && word.length() != prefix.length()) {
49 cabang = word.substring(prefix.length() + 1);
50 }
51 }
52 }
53
54 public static void getTanggal(String word) {
55 for (String prefix: ont_tanggal) {
56 if (word.toLowerCase().startsWith(prefix) && word.length() !=
prefix.length()) {
57 tanggal = word.substring(prefix.length() + 1);
102
58 }
59 }
60 }
61
62 public static void getNmrRekening(String word) {
63 for (String prefix: ont_nmr_rekening) {
64 if (word.toLowerCase().startsWith(prefix) && word.length() != prefix.length()) {
65 nmr_rekening = word.substring(prefix.length() + 1);
66 }
67 }
68 }
69
70 public static void getNamaRekening(String word) {
71 for (String prefix: ont_nama_rekening) {
72 if (word.toLowerCase().startsWith(prefix)) {
73 nama_rekening = word.substring(prefix.length() + 1);
74 }
75 }
76 }
77
78 public static void getJmlhDitarik(String word) {
79 for (String prefix: ont_jmlh_ditarik) {
80 if (word.toLowerCase().startsWith(prefix) && word.length() !=
prefix.length()) {
81 jmlh_ditarik = word.substring(prefix.length() + 1);
82 }
83 }
84 }
85
86 public static void getTerbilang(String word) {
87 for (String prefix: ont_terbilang) {
88 if (word.toLowerCase().startsWith(prefix) && word.length() !=
prefix.length()) {
89 terbilang = word.substring(prefix.length() + 1);
90 }
103
91 }
92 }
93 }
Main Menu
1 import javax.swing.*;
2 import java.io.*;
3 import java.util.ArrayList;
4 import static main.Main.cabang;
5 import static main.Main.getCabang;
6 import static main.Main.getJmlhDitarik;
7 import static main.Main.getNamaRekening;
8 import static main.Main.getNmrRekening;
9 import static main.Main.getTanggal;
10 import static main.Main.getTerbilang;
11 import static main.Main.jmlh_ditarik;
12 import static main.Main.nama_rekening;
13 import static main.Main.nmr_rekening;
14 import static main.Main.readLines;
15 import static main.Main.tanggal;
16 import static main.Main.terbilang;
17 /**
18 *
19 * @author Bio
20 */
21
22 public class gui extends javax.swing.JFrame {
23 result resFrame = new result();
24 help helpFrame = new help();
25
26 /**
27 * Creates new form gui
28 */
29 String ReadFile;
30 String Nama_Bank;
104
31 String Input;
32 int namaPos = -1;
33 int noRekPos = -1;
34 int jumlahPos = -1;
35 int cabangPos = -1;
36 int tanggalPos = -1;
37 int terbilangPos = -1;
38
39 public gui() {
40 initComponents();
41 setExtendedState(JFrame.MAXIMIZED_BOTH);
42 setVisible(true);
43 setResizable(false);
44 }
45
46 class MyCustomFilter extends javax.swing.filechooser.FileFilter {
47 @Override
48 public boolean accept(File file) {
49 // Allow only directories, or files with ".txt" extension
50 return file.isDirectory() || file.getAbsolutePath().endsWith(".txt");
51 }
52 @Override
53 public String getDescription() {
54 // This description will be displayed in the dialog,
55 // hard-coded = ugly, should be done via I18N
56 return "Text documents (*.txt)";
57 }
58 }
59
60 /**
61 * This method is called from within the constructor to initialize the form.
62 * WARNING: Do NOT modify this code. The content of this method is always
63 * regenerated by the Form Editor.
64 */
65 @SuppressWarnings("unchecked")
105
66 // <editor-fold defaultstate="collapsed" desc="Generated
Code">//GEN-BEGIN:initComponents
67 private void initComponents() {
68
69 fileChooser = new javax.swing.JFileChooser();
70 jScrollPane1 = new javax.swing.JScrollPane();
71 textarea = new javax.swing.JTextArea();
72 btn_xbrl = new javax.swing.JButton();
73 btn_save = new javax.swing.JButton();
74 txtfield_nama_nasabah = new javax.swing.JTextField();
75 lbl_nama_nasabah = new javax.swing.JLabel();
76 lbl_nama_rek = new javax.swing.JLabel();
77 txtfield_no_rek = new javax.swing.JTextField();
78 lbl_jumlah = new javax.swing.JLabel();
79 lbl_terbilang = new javax.swing.JLabel();
80 txtfield_jumlah = new javax.swing.JTextField();
81 txtfield_terbilang = new javax.swing.JTextField();
82 lbl_tanggal = new javax.swing.JLabel();
83 lbl_cabang = new javax.swing.JLabel();
84 txtfield_tanggal = new javax.swing.JTextField();
85 txtfield_cabang = new javax.swing.JTextField();
86 lbl_cabang1 = new javax.swing.JLabel();
87 txtfield_nama_bank = new javax.swing.JTextField();
88 jMenuBar1 = new javax.swing.JMenuBar();
89 jMenu_file = new javax.swing.JMenu();
90 jMenuItem_open = new javax.swing.JMenuItem();
91 jMenuItem_exit = new javax.swing.JMenuItem();
92 jMenu_help = new javax.swing.JMenu();
93 jMenuItem1 = new javax.swing.JMenuItem();
94
95 fileChooser.setFileFilter(new MyCustomFilter());
96
97 setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
98 setTitle("XDANA");
99
106
100 textarea.setColumns(20);
101 textarea.setRows(5);
102 jScrollPane1.setViewportView(textarea);
103
104 btn_xbrl.setText("Convert to XBRL");
105 btn_xbrl.addActionListener(new java.awt.event.ActionListener() {
106 public void actionPerformed(java.awt.event.ActionEvent evt) {
107 btn_xbrlActionPerformed(evt);
108 }
109 });
110
111 btn_save.setBackground(new java.awt.Color(255, 255, 255));
112 btn_save.setIcon(new
javax.swing.ImageIcon("C:\\Users\\Bio\\Downloads\\save29.png")); // NOI18N
113 btn_save.setToolTipText("Save Button");
114 btn_save.addActionListener(new java.awt.event.ActionListener() {
115 public void actionPerformed(java.awt.event.ActionEvent evt) {
116 btn_saveActionPerformed(evt);
117 }
118 });
119
120 txtfield_nama_nasabah.addFocusListener(new java.awt.event.FocusAdapter() {
121 public void focusLost(java.awt.event.FocusEvent evt) {
122 txtfield_nama_nasabahFocusLost(evt);
123 }
124 });
125 txtfield_nama_nasabah.addKeyListener(new java.awt.event.KeyAdapter() {
126 public void keyReleased(java.awt.event.KeyEvent evt) {
127 txtfield_nama_nasabahKeyReleased(evt);
128 }
129 });
130
131 lbl_nama_nasabah.setText("Nama Nasabah");
132
133 lbl_nama_rek.setText("Nomor Rekening");
107
134
135 txtfield_no_rek.addFocusListener(new java.awt.event.FocusAdapter() {
136 public void focusLost(java.awt.event.FocusEvent evt) {
137 txtfield_no_rekFocusLost(evt);
138 }
139 });
140 txtfield_no_rek.addKeyListener(new java.awt.event.KeyAdapter() {
141 public void keyReleased(java.awt.event.KeyEvent evt) {
142 txtfield_no_rekKeyReleased(evt);
143 }
144 });
145
146 lbl_jumlah.setText("Jumlah");
147
148 lbl_terbilang.setText("Terbilang");
149
150 txtfield_jumlah.addFocusListener(new java.awt.event.FocusAdapter() {
151 public void focusLost(java.awt.event.FocusEvent evt) {
152 txtfield_jumlahFocusLost(evt);
153 }
154 });
155 txtfield_jumlah.addKeyListener(new java.awt.event.KeyAdapter() {
156 public void keyReleased(java.awt.event.KeyEvent evt) {
157 txtfield_jumlahKeyReleased(evt);
158 }
159 });
160
161 txtfield_terbilang.addFocusListener(new java.awt.event.FocusAdapter() {
162 public void focusLost(java.awt.event.FocusEvent evt) {
163 txtfield_terbilangFocusLost(evt);
164 }
165 });
166 txtfield_terbilang.addKeyListener(new java.awt.event.KeyAdapter() {
167 public void keyReleased(java.awt.event.KeyEvent evt) {
168 txtfield_terbilangKeyReleased(evt);
108
169 }
170 });
171
172 lbl_tanggal.setText("Tanggal");
173
174 lbl_cabang.setText("Cabang");
175
176 txtfield_tanggal.addFocusListener(new java.awt.event.FocusAdapter() {
177 public void focusLost(java.awt.event.FocusEvent evt) {
178 txtfield_tanggalFocusLost(evt);
179 }
180 });
181 txtfield_tanggal.addKeyListener(new java.awt.event.KeyAdapter() {
182 public void keyReleased(java.awt.event.KeyEvent evt) {
183 txtfield_tanggalKeyReleased(evt);
184 }
185 });
186
187 txtfield_cabang.addFocusListener(new java.awt.event.FocusAdapter() {
188 public void focusLost(java.awt.event.FocusEvent evt) {
189 txtfield_cabangFocusLost(evt);
190 }
191 });
192 txtfield_cabang.addKeyListener(new java.awt.event.KeyAdapter() {
193 public void keyReleased(java.awt.event.KeyEvent evt) {
194 txtfield_cabangKeyReleased(evt);
195 }
196 });
197
198 lbl_cabang1.setText("Nama Bank");
199
200 txtfield_nama_bank.addFocusListener(new java.awt.event.FocusAdapter() {
201 public void focusLost(java.awt.event.FocusEvent evt) {
202 txtfield_nama_bankFocusLost(evt);
203 }
109
204 });
205 txtfield_nama_bank.addKeyListener(new java.awt.event.KeyAdapter() {
206 public void keyReleased(java.awt.event.KeyEvent evt) {
207 txtfield_nama_bankKeyReleased(evt);
208 }
209 });
210
211 jMenu_file.setMnemonic('F');
212 jMenu_file.setText("File");
213
214 jMenuItem_open.setMnemonic('O');
215 jMenuItem_open.setText("Open");
216 jMenuItem_open.addActionListener(new java.awt.event.ActionListener() {
217 public void actionPerformed(java.awt.event.ActionEvent evt) {
218 jMenuItem_openActionPerformed(evt);
219 }
220 });
221 jMenu_file.add(jMenuItem_open);
222
223 jMenuItem_exit.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_X,
java.awt.event.InputEvent.CTRL_MASK));
224 jMenuItem_exit.setText("Exit");
225 jMenuItem_exit.addActionListener(new java.awt.event.ActionListener() {
226 public void actionPerformed(java.awt.event.ActionEvent evt) {
227 jMenuItem_exitActionPerformed(evt);
228 }
229 });
230 jMenu_file.add(jMenuItem_exit);
231
232 jMenuBar1.add(jMenu_file);
233
234 jMenu_help.setText("Bantuan");
235
236 jMenuItem1.setText("Bantuan");
237 jMenuItem1.addActionListener(new java.awt.event.ActionListener() {
110
238 public void actionPerformed(java.awt.event.ActionEvent evt) {
239 jMenuItem1ActionPerformed(evt);
240 }
241 });
242 jMenu_help.add(jMenuItem1);
243
244 jMenuBar1.add(jMenu_help);
245
246 setJMenuBar(jMenuBar1);
247
248 javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
249 getContentPane().setLayout(layout);
250 layout.setHorizontalGroup(
251 layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
252 .addGroup(layout.createSequentialGroup()
253 .addContainerGap()
254 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
255 .addGroup(layout.createSequentialGroup()
256 .addComponent(btn_xbrl)
257 .addGap(0, 0, Short.MAX_VALUE))
258 .addGroup(layout.createSequentialGroup()
259 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
260 .addComponent(jScrollPane1)
261 .addGroup(layout.createSequentialGroup()
262 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
263 .addGroup(layout.createSequentialGroup()
264 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
265 .addGroup(layout.createSequentialGroup()
266 .addComponent(lbl_nama_rek)
267 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
268 .addComponent(txtfield_no_rek,
javax.swing.GroupLayout.PREFERRED_SIZE,
140,
javax.swing.GroupLayout.PREFERRED_SIZE)
269 .addGap(18, 18, 18)
111
270 .addComponent(lbl_terbilang))
271 .addGroup(layout.createSequentialGroup()
272 .addComponent(lbl_nama_nasabah)
273 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
274 .addComponent(txtfield_nama_nasabah,
javax.swing.GroupLayout.PREFERRED_SIZE,
140,
javax.swing.GroupLayout.PREFERRED_SIZE)
275 .addGap(18, 18, 18)
276 .addComponent(lbl_jumlah)))
277 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
278 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
279 .addGroup(layout.createSequentialGroup()
280 .addComponent(txtfield_jumlah,
javax.swing.GroupLayout.PREFERRED_SIZE,
140,
javax.swing.GroupLayout.PREFERRED_SIZE)
281 .addGap(18, 18, 18)
282 .addComponent(lbl_tanggal))
283 .addGroup(layout.createSequentialGroup()
284 .addComponent(txtfield_terbilang,
javax.swing.GroupLayout.PREFERRED_SIZE,
140,
javax.swing.GroupLayout.PREFERRED_SIZE)
285 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
286 .addComponent(lbl_cabang1)))
287 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
288 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
289 .addComponent(txtfield_nama_bank,
javax.swing.GroupLayout.PREFERRED_SIZE, 140,
javax.swing.GroupLayout.PREFERRED_SIZE)
290 .addGroup(layout.createSequentialGroup()
291 .addComponent(txtfield_tanggal,
javax.swing.GroupLayout.PREFERRED_SIZE,
140,
112
javax.swing.GroupLayout.PREFERRED_SIZE)
292 .addGap(18, 18, 18)
293 .addComponent(lbl_cabang)
294 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
295 .addComponent(txtfield_cabang,
javax.swing.GroupLayout.PREFERRED_SIZE,
140,
javax.swing.GroupLayout.PREFERRED_SIZE))))
296 .addComponent(btn_save,
javax.swing.GroupLayout.PREFERRED_SIZE, 32,
javax.swing.GroupLayout.PREFERRED_SIZE))
297 .addGap(0, 81, Short.MAX_VALUE)))
298 .addContainerGap())))
299 );
300 layout.setVerticalGroup(
301 layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
302 .addGroup(layout.createSequentialGroup()
303 .addGap(4, 4, 4)
304 .addComponent(btn_save)
305 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
306 .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 296,
Short.MAX_VALUE)
307 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
308 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
309 .addComponent(txtfield_nama_nasabah,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
310 .addComponent(lbl_nama_nasabah)
311 .addComponent(lbl_jumlah)
312 .addComponent(txtfield_jumlah, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
313 .addComponent(lbl_tanggal)
113
314 .addComponent(txtfield_tanggal, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
315 .addComponent(txtfield_cabang, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
316 .addComponent(lbl_cabang))
317 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
318 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
319 .addComponent(lbl_nama_rek)
320 .addComponent(txtfield_no_rek, javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
321 .addComponent(lbl_terbilang)
322 .addComponent(txtfield_terbilang,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE)
323 .addComponent(lbl_cabang1)
324 .addComponent(txtfield_nama_bank,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
325 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
326 .addComponent(btn_xbrl, javax.swing.GroupLayout.PREFERRED_SIZE, 23,
javax.swing.GroupLayout.PREFERRED_SIZE)
327 .addContainerGap())
328 );
329
330 pack();
331 }// </editor-fold>//GEN-END:initComponents
332
333 private void jMenuItem_openActionPerformed(java.awt.event.ActionEvent evt)
{//GEN-FIRST:event_jMenuItem_openActionPerformed
334 // TODO add your handling code here:
114
335
336 int returnVal = fileChooser.showOpenDialog(this);
337 if (returnVal == JFileChooser.APPROVE_OPTION) {
338 File file = fileChooser.getSelectedFile();
339 System.out.println(file);
340 try {
341 // What to do with the file, e.g. display it in a TextArea
342 textarea.read( new FileReader( file.getAbsolutePath() ), null );
343 Nama_Bank = file.getName();
344 ReadFile = file.getAbsolutePath();
345 try{
346 ArrayList<String> aryLines = readLines(ReadFile);
347 ArrayList<String> words = new ArrayList<String>();
348
349 for (int i = 0; i < aryLines.size() ; i++) {
350 aryLines.set(i, aryLines.get(i).replaceAll("\t", " "));
351
352 String[] wordsLine = aryLines.get(i).split(" ");
353 for (int j = 0; j < wordsLine.length; j++) {
354 if (!wordsLine[j].trim().equals("")) {
355 words.add(wordsLine[j].trim());
356 }
357 }
358 }
359
360 for (String word : words) {
361 getCabang(word);
362 getTanggal(word);
363 getNamaRekening(word);
364 getNmrRekening(word);
365 getJmlhDitarik(word);
366 getTerbilang(word);
367 }
368 Nama_Bank = Nama_Bank.replace(".txt","");
369 txtfield_nama_nasabah.setText(nama_rekening);
115
370 txtfield_no_rek.setText(nmr_rekening);
371 txtfield_cabang.setText(cabang);
372 txtfield_jumlah.setText(jmlh_ditarik);
373 txtfield_tanggal.setText(tanggal);
374 txtfield_terbilang.setText(terbilang);
375 txtfield_nama_bank.setText(Nama_Bank);
376 System.out.println(cabang);
377 System.out.println(tanggal);
378 System.out.println(nama_rekening);
379 System.out.println(nmr_rekening);
380 System.out.println(jmlh_ditarik);
381 System.out.println(terbilang);
382 }
383 catch(IOException e){
384 System.out.println("Error: " + e.getMessage());
385 }
386 } catch (IOException ex) {
387 System.out.println("problem accessing file"+file.getAbsolutePath());
388 }
389 } else {
390 System.out.println("File access cancelled by user.");
391 }
392 }//GEN-LAST:event_jMenuItem_openActionPerformed
393
394 private void jMenuItem_exitActionPerformed(java.awt.event.ActionEvent evt)
{//GEN-FIRST:event_jMenuItem_exitActionPerformed
395 // TODO add your handling code here:
396 System.exit(0);
397 }//GEN-LAST:event_jMenuItem_exitActionPerformed
398
399 private void btn_xbrlActionPerformed(java.awt.event.ActionEvent evt)
{//GEN-FIRST:event_btn_xbrlActionPerformed
400 // TODO add your handling code here:
401 System.out.println(ReadFile);
402 String file_name = ReadFile;
116
403 if (file_name == null) {
404 JOptionPane.showMessageDialog(this, "Anda Belum Menginput File","Warning
Message", JOptionPane.WARNING_MESSAGE);
405 }
406 else{
407 int dialogButton = JOptionPane.YES_NO_OPTION;
408 int dialogResult = JOptionPane.showConfirmDialog(this, "Apakah data nasabah
sudah benar?", "XBRL Format Dialog",dialogButton);
409 if(dialogResult==0){
410 jmlh_ditarik = jmlh_ditarik.replace(".", "");
411 double jumlah = Double.parseDouble(jmlh_ditarik);
412 xbrl.convertToXBRL(nama_rekening,
413 nmr_rekening,
414 jmlh_ditarik,
415 terbilang,
416 Nama_Bank,
417 tanggal,
418 cabang);
419 resFrame.openResult();
420 resFrame.setVisible(true);
421 }
422 }
423 }//GEN-LAST:event_btn_xbrlActionPerformed
424
425 private void btn_saveActionPerformed(java.awt.event.ActionEvent evt)
{//GEN-FIRST:event_btn_saveActionPerformed
426 String textToSet = textarea.getText();
427 String file_name = ReadFile;
428 if(file_name == null){
429 JOptionPane.showMessageDialog(this, "Anda Belum Menginput File","Warning Message",
JOptionPane.WARNING_MESSAGE);
430 }else{
431 int dialogButton = JOptionPane.YES_NO_OPTION;
432 int dialogResult = JOptionPane.showConfirmDialog(this, "Apakah Anda Ingin
Memperbaharui Data Nasabah?", "Simpan Data Nasabah",dialogButton);
117
433 if(dialogResult==0){
434 try
435 {
436 PrintWriter writer = new PrintWriter(ReadFile.toString(), "UTF-8");
437 writer.write(textToSet);
438 writer.close();
439 }
440 catch (FileNotFoundException | UnsupportedEncodingException exc)
441 {
442 System.err.println("Could'nt write to the file");
443 }
444 }
445 }
446 }//GEN-LAST:event_btn_saveActionPerformed
447
448 private void txtfield_no_rekKeyReleased(java.awt.event.KeyEvent evt)
{//GEN-FIRST:event_txtfield_no_rekKeyReleased
449 if (noRekPos == -1) {
450 noRekPos = textarea.getText().indexOf(nmr_rekening);
451 }
452 String oldText = textarea.getText();
453 String newText = oldText.substring(0, noRekPos)
454 + txtfield_no_rek.getText()
455 + oldText.substring(namaPos + nmr_rekening.length(),
oldText.length());
456
457 nmr_rekening = txtfield_no_rek.getText();
458 textarea.setText(newText);
459 }//GEN-LAST:event_txtfield_no_rekKeyReleased
460
461 private void txtfield_jumlahKeyReleased(java.awt.event.KeyEvent evt)
{//GEN-FIRST:event_txtfield_jumlahKeyReleased
462 if (jumlahPos == -1) {
463 jumlahPos = textarea.getText().indexOf(jmlh_ditarik);
464 }
118
465 String oldText = textarea.getText();
466 String newText = oldText.substring(0, jumlahPos)
467 + txtfield_jumlah.getText()
468 + oldText.substring(jumlahPos + jmlh_ditarik.length(),
oldText.length());
469
470 jmlh_ditarik = txtfield_jumlah.getText();
471 textarea.setText(newText);
472 }//GEN-LAST:event_txtfield_jumlahKeyReleased
473
474 private void txtfield_terbilangKeyReleased(java.awt.event.KeyEvent evt)
{//GEN-FIRST:event_txtfield_terbilangKeyReleased
475 if (terbilangPos == -1) {
476 terbilangPos = textarea.getText().indexOf(terbilang);
477 }
478 String oldText = textarea.getText();
479 String newText = oldText.substring(0, terbilangPos)
480 + txtfield_terbilang.getText()
481 + oldText.substring(terbilangPos + terbilang.length(),
oldText.length());
482
483 terbilang = txtfield_terbilang.getText();
484 textarea.setText(newText);
485 }//GEN-LAST:event_txtfield_terbilangKeyReleased
486
487 private void txtfield_tanggalKeyReleased(java.awt.event.KeyEvent evt)
{//GEN-FIRST:event_txtfield_tanggalKeyReleased
488 if (tanggalPos == -1) {
489 tanggalPos = textarea.getText().indexOf(tanggal);
490 }
491 String oldText = textarea.getText();
492 String newText = oldText.substring(0, tanggalPos)
493 + txtfield_tanggal.getText()
494 + oldText.substring(tanggalPos + tanggal.length(),
oldText.length());
119
495
496 tanggal = txtfield_tanggal.getText();
497 textarea.setText(newText);
498 }//GEN-LAST:event_txtfield_tanggalKeyReleased
499
500 private void txtfield_cabangKeyReleased(java.awt.event.KeyEvent evt)
{//GEN-FIRST:event_txtfield_cabangKeyReleased
501 if (cabangPos == -1) {
502 cabangPos = textarea.getText().indexOf(cabang);
503 }
504 String oldText = textarea.getText();
505 String newText = oldText.substring(0, cabangPos)
506 + txtfield_cabang.getText()
507 + oldText.substring(cabangPos + cabang.length(),
oldText.length());
508
509 cabang = txtfield_cabang.getText();
510 textarea.setText(newText);
511 }//GEN-LAST:event_txtfield_cabangKeyReleased
512
513 private void txtfield_nama_bankKeyReleased(java.awt.event.KeyEvent evt)
{//GEN-FIRST:event_txtfield_nama_bankKeyReleased
514 Nama_Bank = txtfield_nama_bank.getText();
515 }//GEN-LAST:event_txtfield_nama_bankKeyReleased
516
517 private void txtfield_nama_nasabahKeyReleased(java.awt.event.KeyEvent evt)
{//GEN-FIRST:event_txtfield_nama_nasabahKeyReleased
518 if (namaPos == -1) {
519 namaPos = textarea.getText().indexOf(nama_rekening);
520 }
521 String oldText = textarea.getText();
522 String newText = oldText.substring(0, namaPos)
523 + txtfield_nama_nasabah.getText()
524 + oldText.substring(namaPos + nama_rekening.length(), oldText.length());
525
120
526 nama_rekening = txtfield_nama_nasabah.getText();
527 textarea.setText(newText);
528 }//GEN-LAST:event_txtfield_nama_nasabahKeyReleased
529
530 private void txtfield_nama_nasabahFocusLost(java.awt.event.FocusEvent evt)
{//GEN-FIRST:event_txtfield_nama_nasabahFocusLost
531 System.out.println(txtfield_nama_nasabah.getText());
532 if (txtfield_nama_nasabah.getText().isEmpty() && ReadFile != null) {
533 JOptionPane.showMessageDialog(this, "Tidak boleh kosong");
534 txtfield_nama_nasabah.requestFocus();
535 }
536 }//GEN-LAST:event_txtfield_nama_nasabahFocusLost
537
538 private void txtfield_no_rekFocusLost(java.awt.event.FocusEvent evt)
{//GEN-FIRST:event_txtfield_no_rekFocusLost
539 System.out.println(txtfield_no_rek.getText());
540 if (txtfield_no_rek.getText().isEmpty() && ReadFile != null) {
541 JOptionPane.showMessageDialog(this, "Tidak boleh kosong");
542 txtfield_no_rek.requestFocus();
543 }
544 }//GEN-LAST:event_txtfield_no_rekFocusLost
545
546 private void txtfield_jumlahFocusLost(java.awt.event.FocusEvent evt)
{//GEN-FIRST:event_txtfield_jumlahFocusLost
547 System.out.println(txtfield_jumlah.getText());
548 if (txtfield_jumlah.getText().isEmpty() && ReadFile != null) {
549 JOptionPane.showMessageDialog(this, "Tidak boleh kosong");
550 txtfield_jumlah.requestFocus();
551 }
552 }//GEN-LAST:event_txtfield_jumlahFocusLost
553
554 private void txtfield_terbilangFocusLost(java.awt.event.FocusEvent evt)
{//GEN-FIRST:event_txtfield_terbilangFocusLost
555 System.out.println(txtfield_terbilang.getText());
556 if (txtfield_terbilang.getText().isEmpty() && ReadFile != null) {
121
557 JOptionPane.showMessageDialog(this, "Tidak boleh kosong");
558 txtfield_terbilang.requestFocus();
559 }
560 }//GEN-LAST:event_txtfield_terbilangFocusLost
561
562 private void txtfield_tanggalFocusLost(java.awt.event.FocusEvent evt)
{//GEN-FIRST:event_txtfield_tanggalFocusLost
563 System.out.println(txtfield_tanggal.getText());
564 if (txtfield_tanggal.getText().isEmpty() && ReadFile != null) {
565 JOptionPane.showMessageDialog(this, "Tidak boleh kosong");
566 txtfield_tanggal.requestFocus();
567 }
568 }//GEN-LAST:event_txtfield_tanggalFocusLost
569
570 private void txtfield_nama_bankFocusLost(java.awt.event.FocusEvent evt)
{//GEN-FIRST:event_txtfield_nama_bankFocusLost
571 System.out.println(txtfield_nama_bank.getText());
572 if (txtfield_nama_bank.getText().isEmpty() && ReadFile != null) {
573 JOptionPane.showMessageDialog(this, "Tidak boleh kosong");
574 txtfield_nama_bank.requestFocus();
575 }
576 }//GEN-LAST:event_txtfield_nama_bankFocusLost
577
578 private void txtfield_cabangFocusLost(java.awt.event.FocusEvent evt)
{//GEN-FIRST:event_txtfield_cabangFocusLost
579 System.out.println(txtfield_cabang.getText());
580 if (txtfield_cabang.getText().isEmpty() && ReadFile != null) {
581 JOptionPane.showMessageDialog(this, "Tidak boleh kosong");
582 txtfield_cabang.requestFocus();
583 }
584 }//GEN-LAST:event_txtfield_cabangFocusLost
585
586 private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt)
{//GEN-FIRST:event_jMenuItem1ActionPerformed
587 // TODO add your handling code here:
122
588 helpFrame.setVisible(true);
589 }//GEN-LAST:event_jMenuItem1ActionPerformed
590
591 public static void main(String args[]) {
592 try {
593 for (javax.swing.UIManager.LookAndFeelInfo info :
javax.swing.UIManager.getInstalledLookAndFeels()) {
594 if ("Nimbus".equals(info.getName())) {
595 javax.swing.UIManager.setLookAndFeel(info.getClassName());
596 break;
597 }
598 }
599 } catch (ClassNotFoundException ex) {
600 java.util.logging.Logger.getLogger(gui.class.getName()).log(java.util.logging.Level.SEVERE,
null, ex);
601 } catch (InstantiationException ex) {
602 java.util.logging.Logger.getLogger(gui.class.getName()).log(java.util.logging.Level.SEVERE,
null, ex);
603 } catch (IllegalAccessException ex) {
604 java.util.logging.Logger.getLogger(gui.class.getName()).log(java.util.logging.Level.SEVERE,
null, ex);
605 } catch (javax.swing.UnsupportedLookAndFeelException ex) {
606 java.util.logging.Logger.getLogger(gui.class.getName()).log(java.util.logging.Level.SEVERE,
null, ex);
607 }
608
609 /* Create and display the form */
610 java.awt.EventQueue.invokeLater(new Runnable() {
611 public void run() {
612 new gui().setVisible(true);
613 }
614 });
615 }
616 private javax.swing.JButton btn_save;
617 private javax.swing.JButton btn_xbrl;
123
618 private javax.swing.JFileChooser fileChooser;
619 private javax.swing.JMenuBar jMenuBar1;
620 private javax.swing.JMenuItem jMenuItem1;
621 private javax.swing.JMenuItem jMenuItem_exit;
622 private javax.swing.JMenuItem jMenuItem_open;
623 private javax.swing.JMenu jMenu_file;
624 private javax.swing.JMenu jMenu_help;
625 private javax.swing.JScrollPane jScrollPane1;
626 private javax.swing.JLabel lbl_cabang;
627 private javax.swing.JLabel lbl_cabang1;
628 private javax.swing.JLabel lbl_jumlah;
629 private javax.swing.JLabel lbl_nama_nasabah;
630 private javax.swing.JLabel lbl_nama_rek;
631 private javax.swing.JLabel lbl_tanggal;
632 private javax.swing.JLabel lbl_terbilang;
633 private javax.swing.JTextArea textarea;
634 private javax.swing.JTextField txtfield_cabang;
635 private javax.swing.JTextField txtfield_jumlah;
636 private javax.swing.JTextField txtfield_nama_bank;
637 private javax.swing.JTextField txtfield_nama_nasabah;
638 private javax.swing.JTextField txtfield_no_rek;
639 private javax.swing.JTextField txtfield_tanggal;
640 private javax.swing.JTextField txtfield_terbilang;
641 }
124
10 /**
11 * Creates new form result
12 */
13 public result() {
14 initComponents();
15 setExtendedState(JFrame.MAXIMIZED_BOTH);
16 //setVisible(true);
17 setResizable(true);
18 }
19
20 public void openResult() {
21 try {
22 // What to do with the file, e.g. display it in a TextArea
23 //jTextArea1.read( new FileReader( "D:\\test2.xbrl" ), null );
24 jTextArea1.read( new FileReader( path ), null );
25 } catch (IOException ex) {
26 System.out.println("problem accessing file D:\\test2.xbrl");
27 }
28 }
29
30 /**
31 * This method is called from within the constructor to initialize the form.
32 * WARNING: Do NOT modify this code. The content of this method is always
33 * regenerated by the Form Editor.
34 */
35 @SuppressWarnings("unchecked")
36 // <editor-fold defaultstate="collapsed" desc="Generated
Code">//GEN-BEGIN:initComponents
37 private void initComponents() {
38
39 jScrollPane1 = new javax.swing.JScrollPane();
40 jTextArea1 = new javax.swing.JTextArea();
41 jButton1 = new javax.swing.JButton();
42 jMenuBar1 = new javax.swing.JMenuBar();
43 jMenu1 = new javax.swing.JMenu();
125
44 jMenuItem1 = new javax.swing.JMenuItem();
45 jMenuItem2 = new javax.swing.JMenuItem();
46 jMenu2 = new javax.swing.JMenu();
47
48 setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
49 setTitle("Hasil XBRL");
50
51 jTextArea1.setEditable(false);
52 jTextArea1.setColumns(20);
53 jTextArea1.setRows(5);
54 jScrollPane1.setViewportView(jTextArea1);
55
56 jButton1.setText("Back");
57 jButton1.addActionListener(new java.awt.event.ActionListener() {
58 public void actionPerformed(java.awt.event.ActionEvent evt) {
59 jButton1ActionPerformed(evt);
60 }
61 });
62
63 jMenu1.setText("File");
64
65 jMenuItem1.setText("Open");
66 jMenuItem1.addActionListener(new java.awt.event.ActionListener() {
67 public void actionPerformed(java.awt.event.ActionEvent evt) {
68 jMenuItem1ActionPerformed(evt);
69 }
70 });
71 jMenu1.add(jMenuItem1);
72
73 jMenuItem2.setText("Exit");
74 jMenu1.add(jMenuItem2);
75
76 jMenuBar1.add(jMenu1);
77
78 jMenu2.setText("Help");
126
79 jMenuBar1.add(jMenu2);
80
81 setJMenuBar(jMenuBar1);
82
83 javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
84 getContentPane().setLayout(layout);
85 layout.setHorizontalGroup(
86 layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
87 .addGroup(layout.createSequentialGroup()
88 .addContainerGap()
89 .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
90 .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 397,
Short.MAX_VALUE)
91 .addGroup(layout.createSequentialGroup()
92 .addComponent(jButton1)
93 .addGap(0, 0, Short.MAX_VALUE)))
94 .addContainerGap())
95 );
96 layout.setVerticalGroup(
97 layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
98 .addGroup(layout.createSequentialGroup()
99 .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 276,
Short.MAX_VALUE)
100 .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
101 .addComponent(jButton1)
102 .addContainerGap())
103 );
104
105 pack();
106 }// </editor-fold>//GEN-END:initComponents
107
108 private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt)
{//GEN-FIRST:event_jMenuItem1ActionPerformed
109 // TODO add your handling code here:
110 }//GEN-LAST:event_jMenuItem1ActionPerformed
127
111
112 private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)
{//GEN-FIRST:event_jButton1ActionPerformed
113 // TODO add your handling code here:
114 this.setVisible(false);
115 }//GEN-LAST:event_jButton1ActionPerformed
116
117 public static void main(String args[]) {
118 /* Set the Nimbus look and feel */
119 //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code
(optional) ">
120 /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look
and feel.
121 * For details see
http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
122 */
123 try {
124 for (javax.swing.UIManager.LookAndFeelInfo info :
javax.swing.UIManager.getInstalledLookAndFeels()) {
125 if ("Nimbus".equals(info.getName())) {
126 javax.swing.UIManager.setLookAndFeel(info.getClassName());
127 break;
128 }
129 }
130 } catch (ClassNotFoundException ex) {
131 java.util.logging.Logger.getLogger(result.class.getName()).log(java.util.logging.Level.SEVERE,
null, ex);
132 } catch (InstantiationException ex) {
133 java.util.logging.Logger.getLogger(result.class.getName()).log(java.util.logging.Level.SEVERE,
null, ex);
134 } catch (IllegalAccessException ex) {
135 java.util.logging.Logger.getLogger(result.class.getName()).log(java.util.logging.Level.SEVERE,
null, ex);
136 } catch (javax.swing.UnsupportedLookAndFeelException ex) {
128
137 java.util.logging.Logger.getLogger(result.class.getName()).log(java.util.logging.Level.SEVERE,
null, ex);
138 }
139 //</editor-fold>
140 /* Create and display the form */
141 java.awt.EventQueue.invokeLater(new Runnable() {
142 public void run() {
143 new result().setVisible(true);
144 }
145 });
146 }
147
148 // Variables declaration - do not modify//GEN-BEGIN:variables
149 private javax.swing.JButton jButton1;
150 private javax.swing.JMenu jMenu1;
151 private javax.swing.JMenu jMenu2;
152 private javax.swing.JMenuBar jMenuBar1;
153 private javax.swing.JMenuItem jMenuItem1;
154 private javax.swing.JMenuItem jMenuItem2;
155 private javax.swing.JScrollPane jScrollPane1;
156 private javax.swing.JTextArea jTextArea1;
157 // End of variables declaration//GEN-END:variables
158 }
129
Withdrawal Form BNI
130
Withdrawal Form Syariah DKI Bank
131
Withdrawal Form Mandiri Bank
132