Open5gs: FHoSS membuat file jar

From OnnoWiki
Revision as of 12:43, 20 August 2023 by Onnowpurbo (talk | contribs) (→‎Langkah Secara Umum)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Sumber: https://stackoverflow.com/questions/9941296/how-do-i-make-a-jar-from-a-java-file

Langkah Secara Umum

  • Masuk ke CLI
  • Masuk ke directory tempat .java
  • Buat build directory
mkdir build
  • Run java compilation
javac -d ./build *.java
  • Jika tidak ada error, kita akan dapat class tree di build directory
  • Pindah ke build directory. Lakukan
jar cvf YourJar.jar *

Menambahkan manifest check jar command line switches


Catatan

Lumayan banyak error

HssExceptionHandler.java:50: error: package javax.servlet does not exist
import javax.servlet.ServletException;
                    ^
HssExceptionHandler.java:51: error: package javax.servlet.http does not exist
import javax.servlet.http.HttpServletRequest;
                         ^
HssExceptionHandler.java:52: error: package javax.servlet.http does not exist
import javax.servlet.http.HttpServletResponse;
                         ^
HssExceptionHandler.java:54: error: package org.apache.log4j does not exist
import org.apache.log4j.Logger;
                       ^
HssExceptionHandler.java:55: error: package org.apache.struts.action does not exist
import org.apache.struts.action.ActionForm;
                               ^
..
..
dst

Lakukan untuk FHoSS

cd /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/
mkdir /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/build
javac -d ./build *.java
/opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/HssExceptionHandler.java
/opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/Log4jInit.java
/opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/package-info.java
/opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/auth/AuthenticationVector.java
/opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/auth/DigestAKA.java
/opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/auth/HexCodec.java
/opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/auth/MD5Util.java
/opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/auth/Milenage.java
/opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/auth/Rijndael32Bit.java
/opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/auth/package-info.java
/opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/cx/CxConstants.java
/opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/cx/CxExperimentalResultException.java
/opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/cx/CxFinalResultException.java
/opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/cx/package-info.java
/opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/cx/op/LIR.java
/opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/cx/op/MAR.java
/opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/cx/op/PPR.java
/opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/cx/op/RTR.java
/opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/cx/op/SAR.java
/opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/cx/op/UAR.java
/opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/db/package-info.java
/opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/db/hibernate/DatabaseExc eption.java
/opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/db/hibernate/HibernateUtil.java
/opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/db/model/AliasesRepositoryData.java
/opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/db/model/ApplicationServer.java
/opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/db/model/CapabilitiesSet.java
/opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/db/model/Capability.java
/opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/db/model/ChargingInfo.java
/opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/db/model/CxEvents.java
/opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/db/model/DSAI.java
/opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/db/model/DSAI_IFC.java
/opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/db/model/DSAI_IMPU.java
/opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/db/model/IFC.java
/opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/db/model/IMPI.java
/opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/db/model/IMPI_IMPU.java
/opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/db/model/IMPU.java
/opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/db/model/IMPU_VisitedNetwork.java
/opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/db/model/IMSU.java
/opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/db/model/Preferred_SCSCF_Set.java
/opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/db/model/RepositoryData.java
/opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/db/model/SP.java
/opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/db/model/SPT.java
/opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/db/model/SP_IFC.java
/opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/db/model/SP_Shared_IFC_Set.java


/opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/db/model/ShNotification.java
/opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/db/model/ShSubscription.java
/opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/db/model/Shared_IFC_Set.java
/opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/db/model/TP.java
/opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/db/model/VisitedNetwork.java
/opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/db/model/Zh_USS.java
/opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/db/op/AliasesRepositoryData_DAO.java
/opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/db/op/ApplicationServer_DAO.java
/opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/db/op/CapabilitiesSet_DAO.java

/opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/db/op/Capability_DAO.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/db/op/ChargingInfo_DAO.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/db/op/CxEvents_DAO.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/db/op/DB_Op.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/db/op/DSAI_DAO.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/db/op/DSAI_IFC_DAO.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/db/op/DSAI_IMPU_DAO.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/db/op/IFC_DAO.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/db/op/IMPI_DAO.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/db/op/IMPI_IMPU_DAO.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/db/op/IMPU_DAO.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/db/op/IMPU_VisitedNetwork_DAO.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/db/op/IMSU_DAO.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/db/op/Preferred_SCSCF_Set_DAO.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/db/op/RepositoryData_DAO.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/db/op/SPT_DAO.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/db/op/SP_DAO.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/db/op/SP_IFC_DAO.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/db/op/SP_Shared_IFC_Set_DAO.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/db/op/ShNotification_DAO.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/db/op/ShSubscription_DAO.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/db/op/Shared_IFC_Set_DAO.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/db/op/TP_DAO.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/db/op/VisitedNetwork_DAO.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/db/op/Zh_USS_DAO.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/diam/DiameterConstants.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/diam/DiameterStack.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/diam/UtilAVP.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/diam/package-info.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/main/CxEventsWorker.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/main/HSSContainer.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/main/HSSProperties.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/main/ShEventsWorker.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/main/Task.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/main/TomcatServer.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/main/Worker.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/main/package-info.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/path/TreeNode.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/path/package-info.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/sh/ShConstants.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/sh/ShExperimentalResultException.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/sh/ShFinalResultException.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/sh/package-info.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/sh/data/AliasesRepositoryDataElement.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/sh/data/ApplicationServerElement.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/sh/data/CSLocationInformationElement.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/sh/data/ChargingInformationElement.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/sh/data/DSAIElement.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/sh/data/InitialFilterCriteriaElement.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/sh/data/PSLocationInformationElement.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/sh/data/PublicIdentityElement.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/sh/data/RepositoryDataElement.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/sh/data/SPTElement.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/sh/data/ShDataElement.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/sh/data/ShDataExtensionElement.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/sh/data/ShDataParser.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/sh/data/ShDataTags.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/sh/data/ShIMSDataElement.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/sh/data/TriggerPointElement.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/sh/op/PNR.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/sh/op/PUR.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/sh/op/SNR.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/sh/op/UDR.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/package-info.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/action/AS_Load.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/action/AS_Search.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/action/AS_Submit.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/action/CS_Load.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/action/CS_Search.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/action/CS_Submit.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/action/CapS_Load.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/action/CapS_Search.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/action/CapS_Submit.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/action/Cap_Load.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/action/Cap_Search.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/action/Cap_Submit.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/action/DSAI_Load.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/action/DSAI_Search.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/action/DSAI_Submit.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/action/GBA_USS_Load.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/action/GBA_USS_Submit.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/action/IFC_Load.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/action/IFC_Search.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/action/IFC_Submit.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/action/IMPI_Load.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/action/IMPI_Search.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/action/IMPI_Submit.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/action/IMPU_Load.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/action/IMPU_Search.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/action/IMPU_Submit.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/action/IMSU_Load.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/action/IMSU_Search.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/action/IMSU_Submit.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/action/PrefS_Load.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/action/PrefS_Search.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/action/PrefS_Submit.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/action/SP_Load.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/action/SP_Search.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/action/SP_Submit.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/action/S_IFC_Load.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/action/S_IFC_Search.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/action/S_IFC_Submit.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/action/TP_Load.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/action/TP_Search.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/action/TP_Submit.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/action/VN_Load.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/action/VN_Search.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/action/VN_Submit.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/form/AS_Form.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/form/AS_SearchForm.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/form/CS_Form.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/form/CS_SearchForm.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/form/CapS_Form.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/form/CapS_SearchForm.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/form/Cap_Form.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/form/Cap_SearchForm.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/form/DSAI_Form.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/form/DSAI_SearchForm.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/form/DeleteForm.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/form/GBA_USS_Form.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/form/IFC_Form.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/form/IFC_SearchForm.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/form/IMPI_Form.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/form/IMPI_SearchForm.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/form/IMPU_Form.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/form/IMPU_SearchForm.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/form/IMSU_Form.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/form/IMSU_SearchForm.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/form/PrefS_Form.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/form/PrefS_SearchForm.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/form/SPT_Form.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/form/SP_Form.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/form/SP_SearchForm.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/form/S_IFC_Form.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/form/S_IFC_SearchForm.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/form/TP_Form.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/form/TP_SearchForm.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/form/USS_Form.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/form/VN_Form.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/form/VN_SearchForm.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/servlet/ResponseFilter.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/util/LoggerHelper.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/util/Tuple.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/web/util/WebConstants.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/zh/ZhConstants.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/zh/ZhExperimentalResultException.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/zh/ZhFinalResultException.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/zh/package-info.java /opt/OpenIMSCore/FHoSS/src/de/fhg/fokus/hss/zh/op/MAR.java


Referensi