Tutorial Teknologi Kuliah

Blogger

  • Tutorial
  • Teknologi
  • Kuliah
  • UTM

Hot

Wednesday, 3 May 2017

Tutorial dan Contoh Perhitungan AHP

15:04 3
Analytical Hierarchy Process (AHP) adalah suatu metode pengambilan keputusan dengan melakukan perbandingan berpasangan antara kriteria pilihan dan juga perbandingan berpasangan antara pilihan yang ada. Permasalahan pengambilan keputusan dengan AHP umunya dikomposisikan menjadi kriteria, dan alternative pilihan.
Contoh permasalahan:
Bagian terpenting dari proses analisis adalah 3 (tiga) tahapan berikut:
1. Nyatakan tujuan analisis: Memilih mobil baru
2. Tentukan kriteria: style, kehandalan, dan konsumi bahan bakar
3. Tentukan alternative pilihan: Avansa, Xenia, Ertiga, Grand Livina
Informasi ini kemudian disusun membentuk pohon bertingkat
Pembentukan Pohon Bertingkat
Informasi yang ada kemudian di-sintesis untuk menentukan peringkat relative dari alternative pilihan yang ada. Kriteria dari jenis qualitative dan quantitative dapat diperbandingkan menggunakan informed judgement untuk menghitung bobot dan prioritas.
Bagaimana menentukan tingkat kepentingan relative dari kriteria yang ada?
Hal ini dapat dilakukan dengan judgement untuk menentukan peringkat dari kriteria. Dalam sebuah sistem berbasis AHP, judgement ini diberikan oleh user pengguna sistem dan dilakukan pada saat user bermaksud melakukan proses AHP dan melihat rekomendasi.
Misalnya:
1. Kehandalan 2 kali lebih penting dari style
2. Style 3 kali lebih penting dari konsumsi bahan bakar
3. Kehandalan 4 kali lebih penting dari konsumsi bahan bakar
Selanjutnya dengan pairwise comparison (perbandingan berpasangan), tingkat kepentingan satu kriteria dibandingkan dengan yang lain dapat diekspresikan.
Nilai yang digunakan:
1: equal
2: moderate
3: strong
4: very strong
5: extreme
Dari judgement di atas bisa dibuatkan tabel perbandingan berpasangan sebagai berikut:
Preferensi User
Bagaimana mengubah matrik berpasangan ini menjadi peringkat dari kriteria? Jawabannya: Eigenvector
Berikut cara untuk mencari solusi eigenvector:
1. Cara komputasi yang singkat yang bisa digunakan untuk mendapatkan peringkat adalah dengan menggunakan matrik berpasangan ini sebagai sebagai dasar penghitungan kuadrat matrik berpasangan setiap saat.
2. Jumlah setiap baris dihitung dan dinormalisasi
3. Perhitungan dihentikan apabila perbedaan dari jumlah-jumlah ini dalam dua penghitungan yang berturutan lebih kecil dari suatu angka.
Tahan 1: Kuadratkan Matrik Berbasangan
Preferensi User 02
Perhitungan Eigen Vector 01
Tahap 2: Hitung Eigenvector pertama
1. Jumlahkan baris
2. Jumlahkan jumlah dari baris-baris yang ada
3. Normalisasi nilai jumlah dari masing-masing baris
Perhitungan Eigen Vector 02
Perhitungan Eigen Vector 03
Angka normalisasi pertama yang sebesar 0.3194 didapatkan dengan membagi angka 12.75/39.9165
Jadi eigenvector yang pertama adalah:
Perhitungan Eigen Vector 04
Proses ini terus diulang: kuadrat, jumlahkan, dan normalisasikan
Perhitungan Eigen Vector 05
Dikuadratkan, dijumlah, dan dinormalisasi menjadi:
Perhitungan Eigen Vector 06
Perhitungan Eigen Vector 07
Perhitungan Eigen Vector 08
Jadi eigenvector yang kedua adalah:
Perhitungan Eigen Vector 09
Perbedaannya memang sudah kecil, apalagi kalau dihitung satu putaran lagi:
Perhitungan Eigen Vector 10
Apa arti nilai eigenvector ini? Melihat pada nilai dari eigenvector bisa dikatakan bahwa:
kriteria yang pertama adalah peringkat nomor 2 terpenting,
kriteria yang kedua adalah peringkat 1 terpenting, dan
kriteria yang ketiga adalah peringkat nomor 3 terpenting
Berikut adalah pohon dengan bobot pada kriterianya:
Pembentukan Pohon Bobot Kriteria
Selanjutnya, bagaimana menentukan peringkat alternative pilihan?
Untuk alternative pilihan, juga dilakukan perbandingan berpasangan terhadap kriteria masing-masing. Judgement dalam proses ini umumnya dilakukan berbasis pada data/informasi tentang alternative pilihan (quantitative approach) atau kalau tidak tersedia data/informasi tersebut, dapat dilakukan dengan judgement dari pakar terkait pemilihan alternative tersebut (qualitative approach).
Di dalam sebuah sistem, proses untuk menentukan nilai kriteria dari masing-masing alternative pilihan dan perhitungan peringkat dilakukan pada saat melakukan entry dan edit data variabel dan kriteria alternative pilihan.
Dalam kasus ini, yang memberikan judgement untuk kriteria style dan kehandalan adalah pakar tentang mobil dengan informasi bersifat qualitative.
Style
Perbandingan Alternatif Thd Kriteria 01
Kehandalan
Perbandingan Alternatif Thd Kriteria 02
Dari matrik ini dihitung eigenvector, untuk menentukan peringkat dari alternative pilihan untuk masing-masing kriteria.
Peringkat Style
Eigen Vector Kriteria 01
Peringkat Kehandalan
Eigen Vector Kriteria 02
Untuk kriteria konsumsi bahan bakar, ditentukan dengan informasi yang bersifat quantitative sebagai berikut:
Konsumsi Bahan Bakar
Eigen Vector Kriteria 03 Berupa Bobot
Dengan menormalisasi informasi bersifat quantitative, akan bisa didapatkan peringkat konsumsi bahan bakar untuk masing-masing alternative pilihan.
Dengan demikian bobot kriteria dan alternative pilihan sudah terlengkapi, sehingga pohon keputusan tergambar menjadi:
Pembentukan Pohon Bobot Kriteria dan Alternatif
Untuk mendapatkan hasil keputusan, masing-masing bobot untuk alternative pilihan dikalikan dengan bobot dari kriteria dalam bentuk perkalian matrik sebagai berikut:
Perhitungan AHP 01
Sehingga perhitungan untuk mobil Avanza keseluruhan nilai masing-masing alternative pilihan adalah sebagai berikut:
Perhitungan AHP 02 dan Hasil AHP
Sehingga pilihan yang paling bagus untuk kasus pengambilan keputusan ini adalah mobil dengan tipe Grand Livina.
Read More

Thursday, 16 March 2017

Pagu Penerimaan Mahasiswa Baru dan Besaran Uang Kuliah Tunggal Universitas Trunojoyo Madura

19:52 0

Keputusan Rektor Tentang Pagu Penerimaan Mahasiswa Baru Universitas Trunojoyo Madura Tahun Akademik 2017/2018 file dapat di unduh di SK PAGU

Keputusan Rektor Tentang Besaran Uang Kuliah Tunggal Bagi Mahasiswa Baru Universitas Trunojoyo Madura Tahun Akademik 2017/2018 file dapat di unduh di SK UKT
Read More

Tuesday, 6 December 2016

Cara Mengetahui Jumlah Pengunjung/Visitor Blog Orang Lain

16:13 0
Saya akan berbagi bagaimana caranya melihat atau mengetahui jumlah pengunjung blog orang lain, sekaligus mengetahui jumlah pendapatan dari iklan atau adsense serta mengetahui alexa rank, dan segala sesuatu yang berkaitan dengan blog tersebut, dari tanggal di buatnya hingga masa berakhirnya domain yang dibeli (khusus domain TLD). Nama situs web yang menyediakan cara tersebut adalah Statshow, Setelah kalian masuk ke web tersebut, kalian masukkan url atau alamat blog yang ingin di tracking seperti gambar di bawah ini : 


Demikian tutorial kali ini, semoga bermanfaat ^_^
Read More

Thursday, 1 December 2016

Inilah Penyebab Smartphone Android Lemot

09:02 2

Ada beberapa penyebab Hp Android anda Lemot (Lambat), yaitu:

1. Terlalu Banyaknya Aplikasi yang Terpasang
Setiap hari banyak aplikasi baru yang menarik muncul, sehingga muncul hasrat untuk install aplikasi tersebut. Tanpa disadar ketika terlalu asik mengistall banyak aplikasi, ponsel atau hp Netter pun menjadi super lambat alias lemot disebabkan RAM diponsel anda hampir penuh.

2. Penuhnya atau Menumpuknya Chache Pada Ponsel Adroid
Kebiasaan Netter yang lain ialah ketika chatting dan browsing selalu membiarkan  riwayat atau history pada browser. Ini adalah salah satu penyebab Hp Android anda Menjadi Lemot di karenakan terkumpulnya semua chache di RAM sehingga berpengaruh dalam kecepatan pengoperasian Android Netter.

3. Ketidaksesuaian RAM dan Processor dengan Versi Android .

Tips dari Admin agar Hp Android Netter tidak lemot alias dapat beroperasi dengan lancar, yaitu:


1.  Kurangi aplikasi yang tidak terlalu penting atau jarang digunakan sehingga proses booting dan kinerja dari si Android dapat beroperasi dengan lancar, sebab tadi sudah dijelaskan di atas terlalu banyak Aplikasi dapat menyebabkan HP Android Netter Lemot.

2. Jangan gunakan fitur MultiTasking (membuka banyak aplikasi dalam waktu bersamaan). Terkadang Netter tidak mengetahui apakah aplikasi yang baru aja kita tutup apakah sudah tertutup atau masih aktif. Jadi sering-sering cek ya di fitur MultiTasking yang ada di Android Netter, jika ada aplikasi yang tidak digunakan silahkan tutup agar dapat mengurangi resiko terjadinya Lemot pada Hp Android Netter.

3. Kurangi penggunaan penyimpanan data di memory internal. Kadang Netter sendiri tidak mengetahui apakah aplikasi yang Netter install di simpan di memory internat atau external. Untuk mengetahuinya Netter dapat melihatnya di pengaturan Aplikasi yang terdapat di Android Netter masing-masing. Jika Memory internalnya sudah hampir penuh ataubahkan penuh, inilah penyebabnya Hp Android Netter menjadi Lemot alias lola(lambat). Untuk mengatasinya Netter dapat menghapus beberapa aplikasi yang sudah terinstall di Android Netter. Jika Netter tidak ingin menghapus aplikasi yang sudah terinstall, Netter dapat memanfaatkan memory eksternal dengan memindahkan data aplikasinya.

4. Gunakan Aplikasi penghapus Chache
Read More

Cara Merawat Hp Android Agar Awet dan Tidak Lemot

08:58 2

Zaman makin modren dan semua barang elektronik pun makin canggih, salah satunya yaitu Smartphone. Smartphone adalah sebutan bagi ponsel pintar yang memiliki sistem operasi Android yang dapat mengerjakan banyak hal dan dapat membantu kegiatan sehari-hari manusia. Sekarang banyak vendor-vendor ponsel menciptakan Smartphone yang memiliki kualitas bagus dengan harga yang murah. Namun, terkadang banyak orang yang minim akan pengetahuan bagaimana cara merawat smartphone android agar awet dan tidak lemot.

Dikarenakannya minimnya informasi bagaimana cara merawat smartphone android agar awet dan tidak lemot mereka pun selalu berhati-hati dalam penggunaan smartphone android tersebut. Nah admin harap dengan artikel ini sobat dapat menerapkannya di smartphone android yang sobat punya.

Berikut ini adalah Tips dan Cara Merawat Android agar awet dan tidak lemot

1. Rawat Sector Body atau Tubuh Smartphone anda
Cara merawat smartphone yang paling umum untuk menjaga kemulusan body. Dengan memakai pelindung smartphone berupa case. Untuk layar Smartphone, gunakan screen protecktor untuk melindungi layar agar tidak mengalami goresan yang dapat membuat efek jelek pada msratphone sobat. Semua itu dilakukan bertujuan agar Smartphone Android sobat awet dan dahan lama jika terjadi sebuah insiden smartphone jatuh atau terkena air.


2. Perawatan Pada Sofware(Sector Sofware)
Perawatan pada bagian sofware ini kita harus memperhatikan dalah hal
a.Perhatikan  spesifikasi dan kapasitas penyimpanan (Memory internal dan Ram) pada Smartphone anda.

b.Installah aplikasi pada Smartphone yang hanya di butuhkan. Sebab, terlalu banyak aplikasi dapat menyebabkan Smartphone Android sobat lemot.

c.Hati-hatilah dalam penginstallan aplikasi untuk Smartphone Android sobat. Sebab, banyak aplikasi di luar sana yang tidak aman. Jadi, install aplikasi pilihan anda yang bersumber dari “Google Play Store”.

d.Install aplikasi antivirus yang terpercaya menurut anda.

3.Perawatan Pada Baterai
a.Gunakan selalu charger asli /original yang didapat ketika membeli Smartphone.

b.Biasakan mencharger smartphone ketika isi batrai benar-benar habis dan diharuskan untuk menchargernya.

c.Hindarkan tempat yang memiliki suhu tinggi atau panas ketika mencharger Smartphone.

d.Jika sering menggunakan powerbank, setidaknya seminggu sekali anda mencharger menggunakan device charger bawaan dari Smartphone sampai penuh.
Read More

Wednesday, 30 November 2016

Perbedaan Stemming Bahasa Indonesia dengan Algoritma Nazief dan Andriani

15:36 0
Stemming merupakan bagian yang tidak terpisahkan dalam Information Retrieval (IR). Tidak banyak algoritma yang dikhususkan untuk stemmingbahasa Indonesia dengan berbagai keterbatasan didalamnya. Algoritma Porter salah satunya, Algoritma ini membutuhkan waktu yang lebih singkat dibandingkan dengan stemming menggunakan Algoritma Nazief & Adriani, namun proses stemming menggunakan Algoritma Porter memiliki prosentase keakuratan (presisi) lebih kecil dibandingkan dengan stemming menggunakan Algoritma Nazief & Adriani. Algoritma Nazief & Adriani sebagai algoritma stemming untuk teks berbahasa Indonesia yang memiliki kemampuan prosentase keakuratan (presisi) lebih baik dari algoritma lainnya. Algoritma ini sangat dibutuhkan dan menentukan dalam proses IR dalam dokumen Indonesia.

Stemming adalah salah satu cara yang digunakan untuk meningkatkan performa IR dengan cara mentransformasi kata-kata dalam sebuah dokumen teks ke bentuk kata dasarnya. Algoritma stemming untuk bahasa yang satu berbeda dengan algoritma stemming untuk bahasa lainnya. Sebagai contoh bahasa Inggris memiliki morfologi yang berbeda dengan bahasa Indonesia sehingga algoritma stemming untuk kedua bahasa tersebut juga berbeda. Proses stemming pada teks berbahasa Indonesia lebih rumit/kompleks karena terdapat variasi imbuhan yang harus dibuang untuk mendapatkan root word(kata dasar) dari sebuah kata.. Pada umumnya kata dasar pada bahasa Indonesia terdiri dari kombinasi:
Prefiks 1 + Prefiks 2 + Kata dasar + Sufiks 3 + Sufiks 2 + Sufiks 1
Sehingga dapat digambarkan menggunakan flowchar sebagai berikut:



Algoritma Nazief & Adriani yang dibuat oleh Bobby Nazief dan Mirna Adriani ini memiliki tahap-tahap sebagai berikut:
Pertama cari kata yang akan diistem dalam kamus kata dasar. Jika ditemukan maka diasumsikan kata adalah root word. Maka algoritma berhenti.
Inflection Suffixes (“-lah”, “-kah”, “-ku”, “-mu”, atau “-nya”) dibuang. Jika berupa particles (“-lah”, “-kah”, “-tah” atau “-pun”) maka langkah ini diulangi lagi untuk menghapus Possesive Pronouns (“-ku”, “-mu”, atau “-nya”), jika ada.
Hapus Derivation Suffixes (“-i”, “-an” atau “-kan”). Jika kata ditemukan di kamus, maka algoritma berhenti. Jika tidak maka ke langkah 3a
Jika “-an” telah dihapus dan huruf terakhir dari kata tersebut adalah “-k”, maka “-k” juga ikut dihapus. Jika kata tersebut ditemukan dalam kamus maka algoritma berhenti. Jika tidak ditemukan maka lakukan langkah 3b.
Akhiran yang dihapus (“-i”, “-an” atau “-kan”) dikembalikan, lanjut ke langkah 4.
Hapus Derivation Prefix. Jika pada langkah 3 ada sufiks yang dihapus maka pergi ke langkah 4a, jika tidak pergi ke langkah 4b.
Periksa tabel kombinasi awalan-akhiran yang tidak diijinkan. Jika ditemukan maka algoritma berhenti, jika tidak
pergi ke langkah 4b.
For i = 1 to 3, tentukan tipe awalan kemudian hapus awalan. Jika root word belum juga ditemukan lakukan langkah 5, jika sudah maka algoritma berhenti. Catatan: jika awalan kedua sama dengan awalan pertama algoritma berhenti.
Melakukan Recoding.
Jika semua langkah telah selesai tetapi tidak juga berhasil maka kata awal diasumsikan sebagai root word. Proses selesai.
Tipe awalan ditentukan melalui langkah-langkah berikut:
Jika awalannya adalah: “di-”, “ke-”, atau “se-” maka tipe awalannya secara berturut-turut adalah “di-”, “ke-”, atau “se-”.
Jika awalannya adalah “te-”, “me-”, “be-”, atau “pe-” maka dibutuhkan sebuah proses tambahan untuk menentukan tipe awalannya.
Jika dua karakter pertama bukan “di-”, “ke-”, “se-”, “te-”, “be-”, “me-”, atau “pe-” maka berhenti.
Jika tipe awalan adalah “none” maka berhenti. Jika tipe awalan adalah bukan “none” maka awalan dapat dilihat pada Tabel 2. Hapus awalan jika ditemukan.
Tabel 1. Kombinasi Awalan Akhiran Yang Tidak Diijinkan
Awalan
Akhiran yang tidak diizinkan
be-
-i
di-
-an
ke-
-i, -kan
me-
-an
se-
-i, -kan
Tabel 2. Cara Menentukan Tipe Awalan Untuk awalan “te-”
Following Characters
Tipe Awalan
Set 1
Set 2
Set 3
Set 4
“-r-“
“-r-“
none
“-r-“
ter-luluh
“-r-“
not (vowel or “-r-”)
“-er-“
vowel
ter
“-r-“
not (vowel or “-r-”)
“-er-“
not vowel
ter-
“-r-“
not (vowel or “-r-”)
not “-er-“
ter
not (vowel or “-r-”)
“-er-“
vowel
none
not (vowel or “-r-”)
“-er-“
not vowel
te
Tabel 3. Jenis Awalan Berdasarkan Tipe Awalannya
Tipe Awalan
Awalan yang harus dihapus
di-
di-
ke-
ke-
se-
se-
te-
te-
ter-
ter-
ter-luluh
ter
Untuk mengatasi keterbatasan pada algoritma di atas, maka ditambahkan aturan-aturan dibawah ini:
1. Aturan untuk reduplikasi.
Jika kedua kata yang dihubungkan oleh kata penghubung adalah kata yang sama maka root word adalah bentuk tunggalnya, contoh : “buku-buku” root word-nya adalah “buku”.
Kata lain, misalnya “bolak-balik”, “berbalas-balasan, dan ”seolah-olah”. Untuk mendapatkan root word-nya, kedua kata diartikan secara terpisah. Jika keduanya memiliki root word yang sama maka diubah menjadi bentuk tunggal, contoh: kata “berbalas-balasan”, “berbalas” dan “balasan” memiliki root word yang sama yaitu “balas”, maka root word “berbalas-balasan” adalah “balas”. Sebaliknya, pada kata “bolak-balik”, “bolak” dan “balik” memiliki root word yang berbeda, maka root word-nya adalah “bolak-balik”.
2. Tambahan bentuk awalan dan akhiran serta aturannya.
Untuk tipe awalan “mem-“, kata yang diawali dengan awalan “memp-” memiliki tipe awalan “mem-”.
Tipe awalan “meng-“, kata yang diawali dengan awalan “mengk-” memiliki tipe awalan “meng-”.
Berikut contoh-contoh aturan yang terdapat pada awalan sebagai pembentuk kata dasar.
1. Awalan SE-
Se + semua konsonan dan vokal tetap tidak berubah
Contoh :
Se + bungkus   = sebungkus
Se + nasib   = senasib
Se + arah    = searah
Se + ekor    = seekor
2. Awalan ME-
Me + vokal (a,i,u,e,o) menjadi sengau “meng”
Contoh :
Me + inap = menginap
Me + asuh = mengasuh
Me + ubah = mengubah
Me + ekor  = mengekor
Me + oplos = mengoplos
Me + konsonan b menjadi “mem”
Contoh :
Me + beri = member
Me + besuk = membesuk 
Me + konsonan c menjadi “men”
Contoh :
Me + cinta  = mencinta
Me + cuci  = mencuci
Me + konsonan d menjadi “men”
Contoh :
Me + didik  = mendidik
Me + dengkur = mendengkur
Me + konsonan g dan h menjadi “meng”
Contoh :
Me + gosok  = menggosok
Me + hukum  = menghukum
Me + konsonan j menjadi “men”
Contoh :
Me + jepit = menjepit
Me + jemput = menjemput
Me + konsonan k menjadi “meng” (luluh)
Contoh :
Me + kukus = mengukus
Me + kupas  = mengupas
Me + konsonan p menjadi “mem” (luluh)
Contoh :
Me + pesona = mempesona
Me + pukul = memukul
Me + konsonan s menjadi “meny” (luluh)
Contoh :
Me + sapu = menyapu
Me + satu = menyatu
Me + konsonan t menjadi “men” (luluh)
Contoh :
Me + tanama = menanam
Me + tukar  = menukar
Me + konsonan (l,m,n,r,w) menjadi tetap “me”
Contoh :
Me + lempar = melempar
Me + masak = memasak
Me + naik  = menaik
Me + rawat = merawat
Me + warna = mewarna
3. Awalan KE-
Ke + semua konsonan dan vokal tetap tidak berubah
Contoh :
Ke + bawa = kebawa
Ke + atas = keatas
4. Awalan PE-
Pe + konsonan (h,g,k) dan vokal menjadi “per”
Contoh :
Pe + hitung + an = perhitungan
Pe + gelar + an = pergelaran
Pe + kantor +   = perkantoran
Pe + konsonan “t” menjadi “pen” (luluh)
Contoh :
Pe + tukar  = penukar
Pe + tikam = penikam
Pe + konsonan (j,d,c,z) menjadi “pen”
Contoh :
Pe + jahit = penjahit
Pe + didik = pendidik
Pe + cuci = pencuci
Pe + zina = penzina
Pe + konsonan (b,f,v) menjadi “pem”
Contoh :
Pe + beri = pemberi
Pe + bunuh = pembunuh
Pe + konsonan “p” menjadi “pem” (luluh)
Contoh :
Pe + pikir  = pemikir
Pe + potong  = pemotong
Pe + konsonan “s” menjadi “peny” (luluh)
Contoh :
Pe + siram  = penyiram
Pe + sabar = penyabar
Pe + konsonan (l,m,n,r,w,y) tetap tidak berubah
Contoh :
Pe + lamar = pelamar
Pe + makan = pemakan
Pe + nanti = penanti
Pe + wangi = pewangi
Penerapannya dapat dilihat pada penggalan source code berikut:

<?php
require_once(‘Algoritma_stemming.php’);
?>
<h3>STEMMING KATA DASAR</h3>
<form method=”post” action=””>
<input type=”text” name=”katadasar” id=”katadasar” size=”20″>
<input class=”btnForm” type=”submit” name=”btnSubmitAdd” value=”Submit”/>
</form>
<?php
if(isset($_POST[‘katadasar’])){
$teksAsli = $_POST[‘katadasar’];
//echo $teksAsli;
$length = strlen($teksAsli);
//echo $length;
$pattern = ‘[A-Za-z]’;
$kata = ”;
if(eregi($pattern,$teksAsli)){
$kata = $teksAsli;
$stemming = NAZIEF($kata);//Memasukkan kata ke fungsi Algoritma Nazief
echo $stemming.'<br/>’;
$kata = ”;
}

}
?>

Untuk algoritma Nazief dan Andriannya sebagai berikut:
<?php
require_once(‘koneksi.php’);//Koneksi ke database
// fungsi-fungsi
/*

DP + DP + root word + DS + PP + P
*/
function cekKamus($kata){
// cari di database
$sql = “SELECT * from tb_katadasar where katadasar =’$kata’ LIMIT 1”;
//echo $sql.'<br/>’;
$result = pg_query($sql) or die(pg_error());
if(pg_num_rows($result)==1){
return true; // True jika ada
}else{
return false; // jika tidak ada FALSE
}
}

function Del_Inflection_Suffixes($kata){
$kataAsal = $kata;
if(eregi(‘([km]u|nya|[kl]ah|pun)$’,$kata)){ // Cek Inflection Suffixes
$__kata = eregi_replace(‘([km]u|nya|[kl]ah|pun)$’,”,$kata);
.
.
.
return $__kata;
}
return $kataAsal;
}

// Cek Prefix Disallowed Sufixes (Kombinasi Awalan dan Akhiran yang tidak diizinkan)
function Cek_Prefix_Disallowed_Sufixes($kata){
if(eregi(‘^(be)[[:alpha:]]+(i)$’,$kata)){ // be- dan -i
return true;
}
.
.
.
if(eregi(‘^(se)[[:alpha:]]+(i|kan)$’,$kata)){ // se- dan -i,-kan
return true;
}
return false;
}

// Hapus Derivation Suffixes (“-i”, “-an” atau “-kan”)
function Del_Derivation_Suffixes($kata){
$kataAsal = $kata;
if(eregi(‘(i|an)$’,$kata)){ // Cek Suffixes
$__kata = eregi_replace(‘(i|an)$’,”,$kata);
if(cekKamus($__kata)){ // Cek Kamus
return $__kata;
}
/*– Jika Tidak ditemukan di kamus –*/
.
.
.

}
return $kataAsal;
}

// Hapus Derivation Prefix (“di-”, “ke-”, “se-”, “te-”, “be-”, “me-”, atau “pe-”)
function Del_Derivation_Prefix($kata){
$kataAsal = $kata;

/* —— Tentukan Tipe Awalan ————*/
if(eregi(‘^(di|[ks]e)’,$kata)){ // Jika di-,ke-,se-
$__kata = eregi_replace(‘^(di|[ks]e)’,”,$kata);
if(cekKamus($__kata)){
return $__kata; // Jika ada balik
}
$__kata__ = Del_Derivation_Suffixes($__kata);
if(cekKamus($__kata__)){
return $__kata__;
}
/*————end “diper-”, ———————————————*/
if(eregi(‘^(diper)’,$kata)){
$__kata = eregi_replace(‘^(diper)’,”,$kata);
if(cekKamus($__kata)){
return $__kata; // Jika ada balik
}
.
.
.
}
/*————end “diper-”, ———————————————*/
}
if(eregi(‘^([tmbp]e)’,$kata)){ //Jika awalannya adalah “te-”, “me-”, “be-”, atau “pe-”
.
.
.
.
}
/* — Cek Ada Tidaknya Prefik/Awalan (“di-”, “ke-”, “se-”, “te-”, “be-”, “me-”, atau “pe-”) ——*/
if(eregi(‘^(di|[kstbmp]e)’,$kata) == FALSE){
return $kataAsal;
}

return $kataAsal;
}

function NAZIEF($kata){
$kataAsal = $kata;
/* 1. Cek Kata di Kamus jika Ada SELESAI */
if(cekKamus($kata)){ // Cek Kamus
return $kata; // Jika Ada kembalikan
}

/* 2. Buang Infection suffixes (\-lah”, \-kah”, \-ku”, \-mu”, atau \-nya”) */
$kata = Del_Inflection_Suffixes($kata);

/* 3. Buang Derivation suffix (\-i” or \-an”) */
$kata = Del_Derivation_Suffixes($kata);

/* 4. Buang Derivation prefix */
$kata = Del_Derivation_Prefix($kata);

return $kata;
}
?>

Pada proses stemming menggunakan Algoritma Nazief & Adriani, kamus yang digunakan sangat mempengaruhi hasil stemming. Semakin lengkap kamus yang digunakan maka semakin akurat pula hasil stemming.
Sumber: Agusta, L.2009. Perbandingan Algoritma Stemming Porter Dengan Algoritma Nazief dan Adriani Untuk Stemming Dokumen Teks Bahasa Indonesia. Konferensi Nasional Sistem dan Informatika 2009.<URL: http://yudiagusta.files.wordpress.com/2009/11/196-201-knsi09-036-perbandingan-algoritma-stemming-porter-dengan-algoritma-nazief-adriani-untuk-stemming-dokumen-teks-bahasa-indonesia.pdf >. Diakses 10 Juli 2010.


SISTEM TEMU KEMBALI INFORMASI
Stemming Nazief dan Andriani
Stemming merupakan bagian yang tidak terpisahkan dalam Information Retrieval (IR). Stemming adalah salah satu cara yang digunakan untuk meningkatkan performa IR dengan cara mentransformasi kata-kata dalam sebuah dokumen teks ke bentuk kata dasarnya.
Algoritma Nazief dan Andriani
Algoritma Nazief & Adriani adalah salah satu algoritma yang digunakan dalam tahap stemming.
Algortima Nazief & Adriani merupakan algoritma untuk mengubah kata yang memiliki sufiks, prefix dan atau konfiks menjadi bentuk kata dasar. Algoritma Nazief & Adriani digunakan dalam penelitian ini sebagai algoritma pendukung dalam proses penentuan nilai kemiripan pada dokumen teks. Terdapat beberapa metode dalam menentukan kemiripan antar dua objek. Algoritma Nazief & Adriani dapat mengenal kesamaan makna dari setiap kata, dimana kata yang memiliki sufiks, prefiks dan konfiks diubah menjadi bentuk dasar.
Algoritma stemming untuk bahasa yang satu berbeda dengan algoritma stemming untuk bahasa lainnya. Proses stemming pada teks berbahasa Indonesia lebih rumit/kompleks karena terdapat variasi imbuhan yang harus dibuang untuk mendapatkan root word (kata dasar) dari sebuah kata. Pada umumnya kata dasar pada bahasa Indonesia terdiri dari kombinasi:
Prefiks 1 + Prefiks 2 + Kata dasar + Sufiks 3 + Sufiks 2 + Sufiks 1
Konjungsi adalah Algoritma stemming Nazief dan Adriani dikembangkan berdasarkan aturan morfologi Bahasa Indonesia yang mengelompokkan imbuhan menjadi awalan (prefix), sisipan (infix), akhiran (suffix) dan gabungan awalan akhiran (confixes). Algoritma ini menggunakan kamus kata dasar dan mendukung recoding, yakni penyusunan kembali kata-kata yang mengalami proses stemming berlebih. Aturan morfologi Bahasa Indonesia mengelompokkan imbuhan ke dalam beberapa kategori sebagai berikut:
1.      Inflection suffixes yakni kelompok akhiran yang tidak merubah bentuk kata dasar. Sebagai contoh, kata “duduk” yang diberikan akhiran “-lah” akan menjadi “duduklah”. Kelompok ini dapat dibagi menjadi dua:
                          i.            Particle (P) atau partikel yakni termaksud di dalamnya “-lah”, “kah”, “tah” dan “pun”.
                        ii.            Possessive pronoun (PP) atau kata genti kepunyaan, termaksud di dalamnya “-ku”,”-mu” dan “-nya”.
2.      Derivation suffixes (DS) yakni kumpulan akhiran asli Bahasa Indonesia yang secara langsung ditambahkan pada kata dasar yaitu akhiran “-i”, “-kan”, dan “-an”.
3.      Derivation prefixes (DP) yakni kumpulan awalan yang dapat langsung diberikan pada kata dasar murni, atau pada kata dasar yang sudah mendapatkan penambahan sampai dengan 2 awalan.
Termaksud di dalamnya adalah:
                             i.            Awalan yang dapat bermorfologi (“me-“, “be-“, “pe-“ dan “te”).
                           ii.            Awalan yang tidak bermorfologi (“di-“, “ke-“ dan “se-“).
Berdasarkan pengklasifikasi imbuhan-imbuhan di atas, maka bentuk kata berimbuhan dalam
Bahasa Indonesia dapat dimodelkan sebagai berikut:
Gambar 1 Model Kata Berimbuhan dalam Bahasa Indonesia
Keterangan :
DP : Derivation prefixes
DS : Derivation suffixes
PP : Possessive pronoun
601596072503
Dengan model bahasa Indonesia di atas serta aturan-aturan dasar morfologi Bahasa Indonesia,
aturan yang digunakan dalam proses algoritma Nazief & Adriani sebagai berikut:
1.      Tidak semua kombinasi awalan dan akhiran diperbolehkan. Kombinasi-kombinasi imbuhan yang tidak diperbolehkan, yaitu “be-i”, “ke-i”, “ke-kan”, “me-an”, “se-i”, “se-kan” dan “te-an”.
2.      Penggunaan imbuhan yang sama secara berulang tidak diperkenankan.
3.      Jika suatu kata hanya terdiri dari satu atau dua huruf, maka proses tidak dilakukan.
4.      Penambahan suatu awalan tertentu dapat mengubah bentuk asli kata dasar, ataupun awalan yang telah diberikan sebelumnya pada kata dasar bersangkutan. Sebagai contoh, awalan “me-“ dapat berubah menjadi “meng-“, “men-“, “meny-“, dan “mem-“. Oleh karena itu diperlukan suatu aturan yang mampu mengatasi masalah morfologi ini.

Tahapan Algoritma Nazief dan Andriani
Algoritma Nazief & Adriani memiliki tahap-tahap sebagai berikut:
1.      Cari kata dalam kamus jika ditemukan maka diasumsikan bahwa kata tersebut adalah kata dasar. Algoritma berhenti. Jika tidak ditemukan maka lakukan langkah 2.
2.      Hilangkan inflectional suffixes bila ada. Dimulai dari inflectional particle (“-lah”, “-kah”, “-tah” dan“-pun”), kemudian possessive pronoun (“-ku”, “-mu” dan “-nya”). Cari kata pada kamus jika ditemukan algoritma berhenti, jika kata tidak tidak ditemukandalam kamus lakukan langkah 3.
3.      Hilangkan derivation suffixes (“-an”, “-i” dan “-kan”). Jika akhiran “-an” dihapus dan ditemukan akhiran “-k”, maka akhiran “-k” dihapus. Cari kata pada kamus jika ditemukan algoritma berhenti, jika kata tidak tidak ditemukan maka lakukan langkah 4.
4.      Pada langkah 4 terdapat tiga iterasi.
1)      Iterasi berhenti jika :
a.       Ditemukannya kombinasi awalan yang tidak diizikan berdasarkan awalan
Awalan
Akhiran yang tidak diijinkan
be-
-i
di-
-an
ke-
-i, -kan
me-
-an
se-
-i, kan
Tabel 2 Kombinasi Awalan Akhiran yang Tidak Diizinkan
b.      Awalan yang dideteksi saat ini sama dengan awalan yang dihilangkan sebelumnya.
c.       Tiga awalan telah dihilangkan.
2)      Identifikasikasikan tipe awalan dan hilangkan. Awalan terdiri dari dua tipe:
a.       Standar (“di-“, “ke-“, “se-”) yang dapat langsung dihilangkan dari kata.
b.      Kompleks (“me-“, “be-“, “pe-“, “te”) adalah tipe-tipe awalan yang dapat bermorfologi sesuai kata dasar yang mengikutinya. Oleh karena itu dibutuhkan aturan pada tabel 2.4 untuk mendapatkan hasil pemenggalan yang tepat.
Aturan
Format Kata
Pemenggalan
1
berV…
ber-V … | be-rV
2
berCAP…
ber-CAP… dimana C != ‘r’ & P != ‘er’
3
berCAerV
ber-CaerV… dimana C != ‘r’
4
Belajar
bel-ajar
5
berC1erC2…
be-C1erC2… dimana C1 != ‘r’ | ‘l’
6
terV…
ter-V… | te-rV…
7
terCerV…
ter-CerV dimana C != ‘r’
8
terCP…
Ter-CP… dimana C!=’r’ dan P !=’er’
9
teC1erC2…
Te-C1erC2… dimana C1 != ‘r’
10
me{l|r|w|y}V…
me – {l|r|w|y} V…
11
mem{b|f|v}…
mem-{b|f|v}…
12
Mempe
mem-pe…
13
mem{rV|V}…
me-m{rV|V}… | me-p{rV|V}
14
men{c|d|j|s|z}…
men-{c|d|js|z}…
15
menV…
me-nV… | me-tV
16
meng{g|h|q|k}…
meng-{g|h|q|k}…
17
mengV…
meng-V… | meng-kV…| mengV-... jika V=’e’
18
menyV…
meny-sV….
19
mempA…
mem-pA… dimana A != ‘e’
20
pe{w|y}V…
pe-{w|y}V…
21
perV…
per-V… | pe-rV…
22
perCAP…
per-CAP… dimana C != ‘r’ dan P != ‘er’
23
perCAerV…
per-CAerV… dimana C != ‘r’
24
pem{b|f|V}…
pem-{b|f|V}…
25
pem{rV|V}…
pe-m{rV|V}… | pe-p{rV|V}…
26
pen{c|d|j|z}…
pen-{c|d|j|z}…
27
penV…
pe-nV… | pe-tV…
28
pengC…
peng-C…
29
pengV…
peng-V… | peng-kV… | pengV-... jika V=’e’
30
penyV…
peny-sV…
31
pelV…
pe-lV… kecuali “pelajar” yang menghasilkan “ajar”
32
peCerV…
Per-erV … dimana C!= {r|w|y|l|m|n}
33
peCP
Pe-CP… dimana C!={r|w|y|l|m|n}dan P!= ‘er’
34
terC1erC2...
ter-C1erC2... dimana C1!= ‘r’
35
peC1erC2...
pe-C1erC2... dimana C1!={r|w|y|l|m|n}
Tabel 2 Aturan Pemenggalan Awalan
Keterangan simbol huruf
C : huruf konsonan
V : huruf vocal
A : huruf vocal atau konsonan
P : partikel atau fragmen dari setiap kata, misalnya “er”
3)     Cari kata yang telah dihilangkan awalannya. Apabila tidak ditemukan, maka langkah 
4 diulang kembali. Apabila ditemukan, maka algoritma berhenti.
5. Apabila setelah langkah 4 kata dasar masih belum ditemukan, maka proses recording dilakukan dengan mengacu pada aturan tabel 2.4. Recording dilakukan dengan menambahkan karakter recording di awal kata yang dipenggal. Pada tabel 2.4, karakter recording adalah huruf kecil setelah tanda hubung (‘-‘) dan terkadang berada sebelum tanda kurung. Sebagai contoh, kata “menangkap” (aturan 15) pada tabel 2.4, setelah dipenggal menjadi “nangkap”. Karena tidak valid, maka recording dilakukan dan menghasilkan kata “tangkap”.
6.   Jika semua langkah gagal, maka input kata yang diuji pada algoritma ini di anggap sebagai kata dasar.
Berikut contoh-contoh aturan yang terdapat pada awalan sebagai pembentuk kata dasar ;
1.      Awalan SE-
Se + semua konsonan dan vokal tetap tidak berubah Contoh :
         Se + bungkus = sebungkus
         Se + nasib = senasib
         Se + arah = searah
2.      Awalan ME-
Me + vokal (a,i,u,e,o) menjadi sengau “meng” Contoh :
         Me + inap = menginap
         Me + asuh = mengasuh
         Me + ubah = mengubah
  Me + konsonan s menjadi “meny” (luluh) Contoh :
         Me + sapu = menyapu
         Me + satu = menyatu
  Me + konsonan t menjadi “men” (luluh) Contoh :
         Me + tanama = menanam
         Me + tukar = menukar

Implementasi Algoritma Nazief dan Andriani
Algoritma ini mengacu pada aturan morfologi bahasa Indonesia yang mengelompokkan imbuhan, yaitu imbuhan yang diperbolehkan atau imbuhan yang tidak diperbolehkan. Pengelompokan ini termasuk imbuhan di depan (awalan), imbuhan kata di belakang (akhiran), imbuhan kata di tengah (sisipan) dan kombinasi imbuhan pada awal dan akhir kata (konfiks). Algoritma ini menggunakan kamus kata keterangan yang digunakan untuk mengetahui bahwa proses stemming telah mendapatkan kata dasar.

Kelebihan dan Kekurangan Algoritma Nazief dan Adriani
  Kelebihan :
1.      Memperhatikan kemungkinan adanya partikel-partikel yang mungkin mengikuti suatu kata berimbuhan.
2.      Proses stemming dokumen teks berBahasa Indonesia menggunakan Algoritma Nazief dan Adriani memiliki prosentase keakuratan (presisi) lebih besar dibandingkan dengan stemming menggunakan Algoritma Porter.
  Kekurangan :
1.      Penyamarataan makna variasi kata
2.     Jumlah database kata dan kata dasarnya harus besar. Kesalahan terjadi bila kata tidak ditemukan di database dan kemudian dianggap kata dasar, padahal bukan
3.      Lamanya waktu yang diperlukan dalam proses pencarian kata di dalam kamus.


Dafar pustaka
  Jurnal Teknologi Informasi, Volume 10 Nomor 1, April 2014, ISSN 1414-9999
  Tahitoe, Andita Dwiyoga(tanpa tahun). “Modifikasi Enhanced Confix Stripping Stemmer Untuk Bahasa Indonesia dengan Metode Corpus Based Stemming”. Institut Teknologi Sepuluh Nopember, 1-15
  Agusta, Ledy. Perbandingan Algoritma Stemming Porter Dengan Algoritma Nazief & Adriani Untuk Stemming Dokumen Teks Bahasa Indonesia ?.[Online] Tersedia:
  Mahendra,K.,2008, Penggunaan Algoritma Semut dan Confix Stripping Stemmer untuk Klasifikasi Dokumen Berita Berbahasa Indonesia,Tugas Akhir,Institut Teknologi Sepuluh November, Surabaya.
http://liyantanto.wordpress.com/2011/06/28/stemming-bahasa-indonesia-dengan-algoritma-nazief-dan-andriani/


Read More