• Tidak ada hasil yang ditemukan

Perbandingan Algoritma Knuth Morris Pratt dan Boyer Moore pada Aplikasi Kamus Bahasa Indonesia-Korea Berbasis Android

N/A
N/A
Protected

Academic year: 2017

Membagikan "Perbandingan Algoritma Knuth Morris Pratt dan Boyer Moore pada Aplikasi Kamus Bahasa Indonesia-Korea Berbasis Android"

Copied!
17
0
0

Teks penuh

(1)

LAMPIRAN

LISTING PROGRAM

<FrameLayout

xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent" android:layout_height="match_parent"

tools:context="com.vici.kamusindo_korea.PencarianFragment"> <!-- TODO: Update blank fragment layout -->

<RelativeLayout

android:layout_width="match_parent" android:layout_height="match_parent" android:background="#e0ddff">

<View

android:id="@+id/view"

android:layout_width="match_parent" android:layout_height="2dp"

android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_below="@+id/textView" android:layout_marginLeft="30dp" android:layout_marginRight="80dp"

android:background="@color/colorPrimaryDark" /> <View

android:id="@+id/view2"

android:layout_width="match_parent" android:layout_height="50dp"

android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_alignParentTop="true"

android:background="@color/colorPrimary" /> <EditText

android:id="@+id/editText"

android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/textView2" android:layout_centerHorizontal="true" android:layout_marginBottom="20dp" android:layout_marginLeft="20dp" android:layout_marginRight="20dp" android:layout_marginTop="35dp"

android:background="@drawable/bg_edit_text" android:hint="Ketik disini..."

android:inputType="text"

android:textAlignment="center"

(2)

android:textColor="@android:color/white" android:textColorHint="#b4b4b4"

android:textSize="22sp" /> <TextView

android:id="@+id/textView"

android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/view" android:layout_alignStart="@+id/view" android:layout_marginBottom="7dp" android:layout_marginTop="7dp" android:text="Indonesia"

android:textColor="#b4cdff" android:textSize="34sp" /> <TextView

android:id="@+id/textView2"

android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignEnd="@+id/view" android:layout_alignRight="@+id/view" android:layout_below="@+id/textView" android:text="Korea"

android:textColor="@color/colorPrimaryDark" android:textSize="30sp" />

<LinearLayout

android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_below="@+id/editText" android:orientation="horizontal"> <Button

android:id="@+id/bt_kmp"

android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="2dp"

android:layout_weight="1"

android:background="@drawable/bg_button" android:text="KMP"

android:textColor="@android:color/white" android:textSize="18sp" />

<Button

android:id="@+id/bt_bm"

android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="2dp"

android:layout_weight="1"

android:background="@drawable/bg_button" android:text="BM"

android:textColor="@android:color/white" android:textSize="18sp" />

</LinearLayout>

(3)

<android.support.design.widget.FloatingActionButton android:id="@+id/fab1"

android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="right|top"

android:src="@android:drawable/stat_notify_sync" /> </FrameLayout>

package com.vici.kamusindo_korea;

import android.app.Fragment;

import android.app.ProgressDialog;

import android.content.Intent;

import android.database.Cursor;

import android.database.sqlite.SQLiteDatabase;

import android.database.sqlite.SQLiteOpenHelper;

import android.os.Bundle;

import android.support.design.widget.FloatingActionButton;

import android.util.Log;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

import android.widget.Button;

import android.widget.EditText;

import android.widget.TextView;

import android.widget.Toast;

public class PencarianFragment extends Fragment { View view;

SQLiteOpenHelper helper; SQLiteDatabase db;

Cursor cursor;

private ProgressDialog pDialog; String state = "Indo-Korea"; public PencarianFragment() {

// Required empty public constructor }

@Override

public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState) {

// Inflate the layout for this fragment

view =

inflater.inflate(R.layout.fragment_pencarian,container,fal se);

final TextView tv_indo =(TextView)

view.findViewById(R.id.textView);

final TextView tv_korea = (TextView)

view.findViewById(R.id.textView2);

final EditText et_input = (EditText)

view.findViewById(R.id.editText);

(4)

Button bt_bm = (Button) view.findViewById(R.id.bt_bm);

helper = new

DatabaseOpenHelper(getActivity().getBaseContext());

cursor = null;

bt_kmp.setOnClickListener(new View.OnClickListener() { @Override

public void onClick(View view) {

String pat = et_input.getText().toString(); if (pat.equals("")) {

Toast.makeText(getActivity(), "Masukan Masih Kosong", Toast.LENGTH_SHORT).show();

} else {

Intent i = new Intent(getActivity(), Hasil_KMP_Activity.class);

et_input.setText(""); i.putExtra("pat", pat); i.putExtra("state", state); startActivity(i);

} });

bt_bm.setOnClickListener(new View.OnClickListener() { @Override

public void onClick(View view) {

String pat = et_input.getText().toString(); if (pat.equals("")) {

Toast.makeText(getActivity(), "Masukan Masih Kosong", Toast.LENGTH_SHORT).show();

} else {

Intent i = new Intent(getActivity(), Hasil_BM_Activity.class);

et_input.setText(""); i.putExtra("pat", pat); i.putExtra("state", state); startActivity(i);

} });

FloatingActionButton fab = (FloatingActionButton)

view.findViewById(R.id.fab1);

fab.setOnClickListener(new View.OnClickListener() { @Override

public void onClick(View view) {

String temp = tv_indo.getText().toString(); tv_indo.setText(tv_korea.getText().toString());

tv_korea.setText(temp);

if (state.equals("Indo-Korea")) state = "Korea-Indo"; else state = "Indo-Korea";

} });

(5)

}

package com.vici.kamusindo_korea;

import android.content.DialogInterface;

import android.database.Cursor;

import android.database.sqlite.SQLiteDatabase;

import android.database.sqlite.SQLiteOpenHelper;

import android.os.Bundle;

import android.support.design.widget.FloatingActionButton;

import android.support.design.widget.Snackbar;

import android.support.v7.app.AlertDialog;

import android.support.v7.app.AppCompatActivity;

import android.support.v7.widget.Toolbar;

import android.text.Html;

import android.util.Log;

import android.view.MenuItem;

import android.view.View;

import android.widget.AdapterView;

import android.widget.ImageView;

import android.widget.ListView;

import android.widget.TextView;

import java.util.ArrayList;

import java.util.List;

public class Hasil_KMP_Activity extends AppCompatActivity { View view;

SQLiteOpenHelper helper; SQLiteDatabase db;

Cursor cursor;

double wMulai, wSelesai, wTotal; public int jum = 0, jumB = 0; String pat, state;

List<Result> resultList = new ArrayList<>(); private ListView listView;

private CustomListAdapter adapter; String temp;

String[] TB = {"tbKamusFull"}; @Override

protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

setContentView(R.layout.activity_hasil__kmp_); getSupportActionBar().setDisplayHomeAsUpEnabled(true);//button balik

getSupportActionBar().setHomeButtonEnabled(true);//button balik getSupportActionBar().setTitle("Hasil Pencarian..."); pat = getIntent().getStringExtra("pat");

state = getIntent().getStringExtra("state"); getSupportActionBar().setSubtitle(pat);

listView = (ListView) findViewById(R.id.list); adapter = new CustomListAdapter(this, resultList); listView.setAdapter(adapter);

listView.setOnItemClickListener(new

(6)

AdapterView.OnItemClickListener() { @Override

public void onItemClick(AdapterView<?> parent, View view, int position, long id) { String a, b;

String indonya = ((TextView)

view.findViewById(R.id.indonya)).getText().toString(); String koreanya = ((TextView)

view.findViewById(R.id.koreanya)).getText().toString(); ImageView imgnya = ((ImageView)

view.findViewById(R.id.imageView1));

ImageView imageView = new ImageView(getApplicationContext()); imageView.setImageDrawable(imgnya.getDrawable());

if (state.equals("Indo-Korea")) { a = "Indonesia \t: ";

b = "Korea \t\t: "; } else {

b = "Indonesia \t: "; a = "Korea \t\t: "; }

AlertDialog dialog = new

AlertDialog.Builder(Hasil_KMP_Activity.this) .setView(imageView)

.setTitle("Terjemahan") .setCancelable(false)

.setMessage(Html.fromHtml(a + "<b>" + indonya + "</b>" +

"<br/>" + b + "<b>" + koreanya + "</b><br/>")) .setPositiveButton("OK", new

DialogInterface.OnClickListener() { @Override

public void onClick(DialogInterface dialog, int which) { dialog.dismiss();

}

}).create(); dialog.show(); }

});

FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);

fab.setOnClickListener(new View.OnClickListener() { @Override

public void onClick(View view) {hasil(); }

});

pat = getIntent().getStringExtra("pat"); pat = pat.toLowerCase();

state = getIntent().getStringExtra("state"); wMulai = System.currentTimeMillis();

startSearch(pat, state);

(7)

temp = String.valueOf(wTotal); }

public void hasil() {

AlertDialog dialog = new

AlertDialog.Builder(Hasil_KMP_Activity.this) .setTitle("Hasil Knuth Morris Pratt") .setMessage(Html.fromHtml(

"\nWaktu \t: " + temp + " ms" + "<br>Jumlah \t: " + jumB + " ditemukan"

))

.setPositiveButton("OK", new

DialogInterface.OnClickListener() { @Override

public void onClick(DialogInterface dialog, int which) { dialog.dismiss();

}

}).create(); dialog.show();

}

public void startSearch(String pattern, String states) { String txt, txtIndo, txtKorea;

helper = new DatabaseOpenHelper(this);//ambil dtbase cursor = null;

db = helper.getReadableDatabase();//read dibaca tnp dirubah

resultList.clear(); jumB = 0;

for (int nama_tabel = 0; nama_tabel < TB.length; nama_tabel++) {

cursor = db.rawQuery("SELECT * FROM " +

TB[nama_tabel] + " ORDER BY INDO ASC; ", null); if (cursor != null) {

try {

cursor.moveToFirst(); do {

if (states.equals("Indo-Korea")) {

txtIndo = txt = cursor.getString(1); txtKorea = cursor.getString(2); } else {

txtIndo = txt = cursor.getString(2); txtKorea = cursor.getString(1); }

//start

KMP_start(txt, pattern, txtIndo, txtKorea, cursor.getBlob(3));

} while (cursor.moveToNext()); } catch (Exception e) {

Log.d("Print", "catch startSearch"); }

} } try {

adapter = new CustomListAdapter(this, resultList); listView.setAdapter(adapter);

(8)

Log.d("Print", "catch update list"); }

db.close(); }

// Knuth Morris Pratt static String txt; static String patt; static String Indo; static String Korea; static byte[] Image; static char[] x; static char[] y; static int n; static int m;

static int[] kmpNext;

public void KMP_start(String getTxt, String getPatt, String getIndo, String getKorea, byte[] getImage) {

txt = getTxt; patt = getPatt; Indo = getIndo; Korea = getKorea; Image = getImage;

x = patt.toCharArray(); y = txt.toCharArray(); n = txt.length(); m = patt.length();

kmpNext = new int[m + 1]; KMP();

}

public static void preKmp() { int i, j;

i = 0;

j = kmpNext[0] = -1; while (i < m) {

while (j > -1 && x[i] != x[j]) { j = kmpNext[j];

} i++; j++;

if (i < m && j < m && x[i] == x[j]) { kmpNext[i] = kmpNext[j];

} else {

kmpNext[i] = j; }

} }

public void KMP() { int i, j;

/* Pre-processing */ preKmp();

(9)

i = j = 0; while (j < n) {

while (i > -1 && x[i] != y[j]) { i = kmpNext[i];

} i++; j++;

if (i >= m) {

// System.out.println(" Result = " + (j - i)); int pos = (j - i);

i = kmpNext[i]; jumB++;

Result m = new Result(); m.setIndo(Indo);

m.setKorea(Korea); m.setImage(Image); m.setPos(pos); m.setPat(patt); resultList.add(m);

Log.d("Print", "masuk KMP"); }

} }

@Override

public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId();

if (id == android.R.id.home) { this.finish();

return true; }

return super.onOptionsItemSelected(item); }

}

<?xml version="1.0" encoding="utf-8"?>

<android.support.design.widget.CoordinatorLayout

xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"

android:layout_height="match_parent" android:fitsSystemWindows="true"

tools:context="com.vici.kamusindo_korea.Hasil_KMP_Activity"> <include layout="@layout/content_hasil__kmp_" />

<android.support.design.widget.FloatingActionButton android:id="@+id/fab"

android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|end"

android:layout_margin="@dimen/fab_margin"

android:src="@android:drawable/ic_dialog_info" /> </android.support.design.widget.CoordinatorLayout>

(10)

package com.vici.kamusindo_korea;

import android.content.DialogInterface;

import android.database.Cursor;

import android.database.sqlite.SQLiteDatabase;

import android.database.sqlite.SQLiteOpenHelper;

import android.os.Bundle;

import android.support.design.widget.FloatingActionButton;

import android.support.v7.app.AlertDialog;

import android.support.v7.app.AppCompatActivity;

import android.support.v7.widget.Toolbar;

import android.text.Html;

import android.util.Log;

import android.view.MenuItem;

import android.view.View;

import android.widget.AdapterView;

import android.widget.ImageView;

import android.widget.ListView;

import android.widget.TextView;

import java.util.ArrayList;

import java.util.List;

public class Hasil_BM_Activity extends AppCompatActivity { View view;

SQLiteOpenHelper helper; SQLiteDatabase db;

Cursor cursor;

double wMulai, wSelesai, wTotal; public int jum = 0, jumB = 0; String pat, state;

List<Result> resultList = new ArrayList<>(); private ListView listView;

private CustomListAdapter adapter; String temp;

String[] TB = {"tbKamusFull"}; @Override

protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

setContentView(R.layout.activity_hasil__bm_);

getSupportActionBar().setDisplayHomeAsUpEnabled(true);//button balik

getSupportActionBar().setHomeButtonEnabled(true);//button balik getSupportActionBar().setTitle("Hasil Pencarian..."); pat = getIntent().getStringExtra("pat");

state = getIntent().getStringExtra("state"); getSupportActionBar().setSubtitle(pat);

listView = (ListView) findViewById(R.id.list); adapter = new CustomListAdapter(this, resultList); listView.setAdapter(adapter);

(11)

listView.setOnItemClickListener(new

AdapterView.OnItemClickListener() { @Override

public void onItemClick(AdapterView<?> parent, View view, int position, long id) { String a, b;

String indonya = ((TextView)

view.findViewById(R.id.indonya)).getText().toString(); String koreanya = ((TextView)

view.findViewById(R.id.koreanya)).getText().toString(); ImageView imgnya = ((ImageView)

view.findViewById(R.id.imageView1));

ImageView imageView = new ImageView(getApplicationContext()); imageView.setImageDrawable(imgnya.getDrawable());

if (state.equals("Indo-Korea")) { a = "Indonesia \t: ";

b = "Korea \t\t: "; } else {

b = "Indonesia \t: "; a = "Korea \t\t: "; }

AlertDialog dialog = new

AlertDialog.Builder(Hasil_BM_Activity.this) .setView(imageView) .setTitle("Terjemahan") .setCancelable(false)

.setMessage(Html.fromHtml(a + "<b>" + indonya + "</b>" + "<br/>" + b + "<b>" + koreanya + "</b><br/>")) .setPositiveButton("OK", new

DialogInterface.OnClickListener() { @Override

public void onClick(DialogInterface dialog, int which) {

dialog.dismiss(); }

}).create(); dialog.show();

} });

FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);

fab.setOnClickListener(new View.OnClickListener() { @Override

public void onClick(View view) { hasil();

} });

pat = getIntent().getStringExtra("pat"); pat = pat.toLowerCase();

(12)

wMulai = System.currentTimeMillis(); startSearch(pat, state);

wSelesai = System.currentTimeMillis(); wTotal = wSelesai - wMulai;

temp = String.valueOf(wTotal); }

public void hasil() { AlertDialog dialog = new

AlertDialog.Builder(Hasil_BM_Activity.this) .setTitle("Hasil Boyer Moore") .setMessage(Html.fromHtml(

"\nWaktu \t: " + temp + " ms" +

"<br>Jumlah \t: " + jumB + " ditemukan" ))

.setPositiveButton("OK", new

DialogInterface.OnClickListener() { @Override

public void onClick(DialogInterface dialog, int which) { dialog.dismiss();

}

}).create(); dialog.show();

}

public void startSearch(String pattern, String states) { String txt, txtIndo, txtKorea;

helper = new DatabaseOpenHelper(this); cursor = null;

db = helper.getReadableDatabase(); resultList.clear();

jumB = 0;

for (int nama_tabel = 0; nama_tabel < TB.length; nama_tabel++) {

cursor = db.rawQuery("SELECT * FROM " +

TB[nama_tabel] + " ORDER BY INDO ASC; ", null); if (cursor != null) {

try {

cursor.moveToFirst(); do {

if (states.equals("Indo-Korea")) {

txtIndo = txt = cursor.getString(1); txtKorea = cursor.getString(2); } else {

txtIndo = txt = cursor.getString(2); txtKorea = cursor.getString(1); }

//start

BM_start(txt, pattern, txtIndo, txtKorea,

cursor.getBlob(3));

} while (cursor.moveToNext()); } catch (Exception e) {

Log.d("Print", "catch startSearch"); }

(13)

try {

adapter = new CustomListAdapter(this, resultList); listView.setAdapter(adapter);

} catch (Exception e) {

Log.d("Print", "catch update list"); }

db.close(); }

//Boyer Moore

static String txtB; static String patB; static char[] xB; static char[] yB; static int nB; static int mB;

static String IndoB; static String KoreaB; static byte[] ImageB;

static int[] suf = new int[256]; static int[] bmBc = new int[256]; static int[] bmGs = new int[256];

public void BM_start(String getTxt, String getPat, String getIndo, String getKorea, byte[] getImage) {

txtB = getTxt; patB = getPat; IndoB = getIndo; KoreaB = getKorea; ImageB = getImage;

xB = patB.toCharArray(); yB = txtB.toCharArray(); nB = txtB.length(); mB = patB.length(); BM();

}

public static void preBmBc() { for (int i = 0; i < 256; ++i) { bmBc[i] = mB;

}

for (int i = 0; i < mB - 1; ++i) { bmBc[xB[i]] = mB - i - 1; }

}

public static void suffixes() { int f = 0;

int g;

suf[mB - 1] = mB; g = mB - 1;

for (int i = mB - 2; i >= 0; --i) {

if (i > g && suf[i + mB - 1 - f] < i - g) { suf[i] = suf[i + mB - 1 - f];

} else {

(14)

g = i; }

f = i;

while (g >= 0 && xB[g] == xB[g + mB - 1 - f]) { --g;

}

suf[i] = f - g; }

} }

public static void preBmGs() { suffixes();

for (int i = 0; i < mB; ++i) { bmGs[i] = mB;

}

int j = 0;

for (int i = mB - 1; i >= 0; --i) { if (suf[i] == i + 1) {

for (; j < mB - 1 - i; ++j) { if (bmGs[j] == mB) { bmGs[j] = mB - 1 - i; }

} } }

for (int i = 0; i <= mB - 2; ++i) { bmGs[mB - 1 - suf[i]] = mB - 1 - i; }

}

public void BM() { int i, j;

/* Pre-processing */ preBmGs();

preBmBc(); /* Searching */ j = 0;

while (j <= nB - mB) {

for (i = mB - 1; i >= 0 && xB[i] == yB[i + j]; --i) ;

if (i < 0) {

//System.out.println(" Result = " + j); int pos = j;

j += bmGs[0];//

jumB++;//menmpung nilai yg uda ditemukan Result m = new Result();

(15)

} else {

j += Math.max(bmGs[i], bmBc[yB[i + j]] - mB + 1 + i);

} } }

@Override

public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId();

if (id == android.R.id.home) { this.finish();

return true;//true maka eksekusi nya berjalan }

return super.onOptionsItemSelected(item); }

}

<?xml version="1.0" encoding="utf-8"?>

<android.support.design.widget.CoordinatorLayout

xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"

android:layout_height="match_parent" android:fitsSystemWindows="true"

tools:context="com.vici.kamusindo_korea.Hasil_BM_Activity"> <include layout="@layout/content_hasil__bm_" />

<android.support.design.widget.FloatingActionButton android:id="@+id/fab"

android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|end"

android:layout_margin="@dimen/fab_margin"

android:src="@android:drawable/ic_dialog_info" />

(16)

DAFTAR RIWAYAT HIDUP

DATA PRIBADI

Nama Lengkap

: Vici Indah Yana

Jenis Kelamin

: Perempuan

Tempat, Tanggal Lahir

: Medan, 18 Agustus 1994

Alamat

: Jl. Alumunium 2 No.11 Tanjung Mulia Medan

Agama

: Islam

Telp/Hp

: 0852 7627 4833

E-mail

: indahyanavici@gmail.com

Pendidikan Terakhir

: Universitas Sumatera Utara Medan, Fakultas Ilmu

Komputer dan Teknologi Informasi. Jurusan S1 Ilmu

Komputer

PENDIDIKAN FORMAL

1998

2000

: TK Swasta YWKA Medan

2000

2006

: SD Swasta YWKA Medan

2006

2009

: SMP Negeri 11 Medan

2009

2012

: SMA Negeri 7 Medan

2012

2016

: S1 Ilmu Komputer Universitas Sumatera Utara, Medan

PENDIDIKAN INFORMAL

2003

2007

: TPA/MDA Madrasah Al Mustaqiem, Medan

2005

2007

: Zahara English Course, Medan

(17)

PENGALAMAN ORGANISASI

Wakil Ketua Pramuka SD Swasta YWKA Medan, 2002-2003

Anggota Paduan Musik dan Suara SMP Negeri 11 Medan, 2006-2009

Anggota PMR SMA Negeri 7 Medan, 2010-2011

Anggota Kewirausahaan UKMI Al Khwarizmi Fasilkom-TI USU, 2012-2014

Anggota KAM RABBANI, Fasilkom-TI USU, 2013-2014

PENGALAMAN KEPANITIAAN

Anggota panitia konsumsi PORSENI, 2014

Sekretaris panitia MEET AND GREET Kam Rabbani, 2014

Anggota panitia konsumsi PMB, 2014

SEMINAR

Seminar Nasional

Literasi Informasi “SENARAI”

, 2014

Seminar Nasional (ILP2MI) IV “Pengenalan Kebudayaan Sumatera Utara”, 2013

Referensi

Dokumen terkait

Aplikasi pesan instan atau IM (Instant Messaging) adalah salah satu metode komunikasi yang paling banyak digunakan diseluruh dunia, salah satunya adalah LINE Messenger

Dari penelusuran dan penelitian hingga penulisan artikel ini, penulis menemukan identitas Islam yang dipengaruhi kawasan-kawasan tertentu di Indonesia: Islam Nusantara,

Dalam menyusun skripsi ini, digunakan metode penelitian hukum normatif yang bersifat deskriptif, dimana penelitian hukum normatif yaitu penelitian yang menganalisis

Bagian ini umumnya paling banyak di huni oleh hewan hutan hujan tropis.. Harpy eagle Toco toucan Wooly opossum Brazilian tapir Black-crowned antpitta Shrub layer Canopy Emergent

Based on Robert Redfied’s notion of great tradition and little tradition, I want to argue that the festival of Idul Fitri in Java is more happy, cheery, and merry rather than in

Sekali-sekali pasien akan mengalami rasa napas yang pendek (seperti orang yang kelelahan) dan bukanya tekanan pada substernal.Sekali-sekali bisa pula

Kamus data atau data dictionary ialah data yang digunakan dalam analisis struktur dan desain sistem informasi dan juga merupakan suatu katalog yang menjelaskan lebih

Cases were grouped (Figure 4) by final diagnosis into cases in which the majority of observers felt the diagnosis was IPF, a disagreement between IPF and HP, HP, CVD, NSIP,