Posts Tagged 'programming'

lanjutan program kamus

kode sudah disesuaikan untuk python3, sehingga bisa jalan langsung di kebanyakan OS linux modern.

yoi, saya sudah menemukan cara agar apapun kata yang kita masukkan, indonesia maupun english, otomatis dicarikan. kelihatannya seperti mendeteksi kata, tetapi sebenarnya tidak. melainkan dengan menggabungkan berkas bahasa indonesia dan english ke dalam satu berkas dan pencarian dimulai dari awal sampai akhir, jika tidak ditemukan diberikan pesan ‘kata yang dimaksud tidak ditemukan’

ternyata ini mudah, cuma gegara rendahnya tingkat inteligensi dan sedikitnya waktu buat main-main, baru ketemu sekarang.

berikut skrip.

def terjemah(kata):
	hasil='tidakada'
	teks=open('universal.dict','r')
	for line in teks:
		x=line.split()
		y=x[0]
		if y == kata:
			hasil=(line)
	if hasil != 'tidakada':
		print(hasil)

	else:
		print('tidak ada kata yang dimaksud')
inputkata=input('masukan kata : ')
katalowercase=inputkata.lower()
terjemah(katalowercase)

penjelasan :

  1. berkas universal.dict adalah berkas gabungan bahasa indonesia dan english. dalam setiap baris, kata pertama adalah kosakata, sedangkan kata kedua dan selanjutnya adalah terjemahannya.
  2. hasil=’tidakada’ adalah variabel yang membantu menunjukkan kondisi awal bahwa kata yang dimaksud tidak ada.
  3. berkas dibaca dan diperiksa, setiap baris dibagi ke dalam list dan diperiksa apakah list pertama dari setiap baris adalah kata yang dimaksud. bahasa inggris maupun indonesia semua diperiksa.
  4. jika sama, maka baris tersebut (kosakata + terjemahan) menggantikan nilai dari variabel hasil dan variabel tersebut ditampilkan. program selesai.
  5. jika tidak sama, maka akan ditampilkan pesan ‘kata yang dimaksud tidak ditemukan’. program selesai.
  6. karena semua kata dalam berkas universal.dict adalah lowercase, digunakan fungsi lower() mengubah setiap karakter huruf besar menjadi huruf kecil.

nah, kelemahannya, bagaimana kalau ada kosakata bahasa indonesia dan english yang sama? saya belum pikirkan kira-kira kosakata yang mana itu.

Iklan

kamus menggunakan dict (python2.x)

cara sebelumnya, saya menggunakan perulangan untuk mencari kata di setiap baris pada berkas id.dict (id.dict adalah berkas kamus, kata pertama adalah sebuah karakter atau kata dalam bahasa indonesia, kata-kata selanjutnya dalam baris yang sama adalah terjemahannya. berkas ini bisa didapatkan dari program gkamus)

bagaimana kalau menggunakan dict? barangkali pencariannya bisa lebih cepat karena tinggal print key (kata) untuk mendapatkan value (terjemahan). tapi sebenarnya lebih lambat, karena mengkonvers sebuah berkas teks kamus ke bentuk dict benar-benar memakan waktu. kali ini juga pakai perulangan untuk membuat dict dari setiap baris berkas.

#!/usr/bin/python2
kamus= {}
for line in open (“id.dict”):
x=line.split()
y=x[0]
z=list(x)
del z[0]
kamus.update({y:z})
kata=raw_input(‘masukkan kata yang akan diterjemahkan : ‘)
print kamus[kata]

cara kerjanya, program akan memisahkan setiap baris menjadi list, kemudian memeriksa dan memasukkan kata pertama dari setiap baris di berkas tersebut sebagai key dari kamus={}. dibuat lagi sebuah list dan mengurangi kata pertama, sehingga list kedua ini hanya berisi terjemahan, kemudian list ini dimasukkan sebagai value untuk setiap key.

keluarannya masih berbentuk list. lagi males. 😛

kedepannya mungkin saya akan masukkan dict yang baku dan sudah jadi ke dalam berkas program, sehingga tidak memakan waktu untuk membaca dan membuat dict dari awal setiap skrip dijalankan dan berkas id.dict tidak diperlukan lagi. kemudian tentu saja, memperbaiki bentuk keluarannya. dan mungkin menerapkan argument parsing sehingga hasilnya kira-kira sebagai berikut :

./terjemahkan.py pagi
pagi : morning

update :

ternyata pakai cara ini benar-benar lambat dan memakan proses lebih banyak saat menjalankan berkas skrip. 😦

skip.

kamusiden v.0.0.1

#untuk dijalankan di python 2.xx
def id2en(kataid):
	teks=open('id.dict','r')
	for line in teks:
		x=line.split()
		y=x[0]
		if y == kataid:
			print line
	else :
		print ('kata tidak ditemukan dalam kamus')
def en2id(kataid):
        teks=open('en.dict','r')
        for line in teks:
                x=line.split()
                y=x[0]
                if y == kataid:
                        print line
	else :
		print ('kata tidak ditemukan dalam kamus')

print('(1) : bahasa indonesia -> english')
print('(2) : english -> bahasa indonesia')
pilih=input('pilih : ')
if pilih == 1 :
	inputkata=raw_input('masukan kata bahasa indonesia : ')
	id2en(inputkata)
elif pilih == 2 :
	inputkata=raw_input('masukan kata bahasa inggris : ')
	en2id(inputkata)
else :
	print('gue bilang 1 atau 2, bukan yang lain! :/')

jarang sekali di kantor ndak ada kerjaan, jadi inilah yang sempat saya kerjakan. kalau dipikir2, membuat kamus dengan kode kamus kode yang dulu adalah sangat tidak efektif, ndak mungkinlah saya ngetik semua kosakata bahasa indonesia dan inggris untuk dijadikan data dict. tapi salah satu program kamus buatan orang Indonesia, gKamus, menyediakan kode sumber programmnya. bukan kode algonya yang saya cari, tapi berkas data daftar kosakata berikut terjemahannya. berkas tersebut ternyata memang didistribusikan bebas dalam bentuk txt dan isinya sangat lengkap. silakan unduh di sini.

oya, format data di dalam berkas teks tersebut seperti ini :

absensi           take attendance.

setiap kata pertama akan dipisahkan sebuah tab kemudian artinya dalam bahasa lawannya. jadi, algo dalam kode tersebut berjalan seperti ini :

input diterima dan dimasukkan ke dalam fungsi. berkas kosakata dibuka, setiap baris akan dipisahkan dalam list (.split). kemudian periksa apakah kata input ada dalam setiap kata pertama dalam setiap baris (yang berarti itu adalah list pertama dari setiap list perbaris). jika ketemu maka baris tersebut ditampilkan (yang isinya adalah kata input dan artinya), jika tidak ditemukan maka ditampilkan pesan tidak ditemukan.

doh, mikirnya susah, jelasinnya juga susah. :/

ke depannya saya berencana untuk membuat perbaikan dan versi gui dari ini. 😀

kamus kode v.0.0.3

def morse(input):
	end='0'
	v=str
	x=str
	kata=input+end
	katalist=list(input)
	nol=0
	dict={' ':' ','a':'.-','b':'-...','c':'-.-.','d':'-..','e':'.','f':'..-.','g':'--.','h':'....','i':'..','j':'.---','k':'-.-','l':'.-..','m':'--','n':'-.','o':'---','p':'.--.','q':'--.-','r':'.-.','s':'...','t':'-','u':'..-','v':'...-','w':'.--','x':'-..-','y':'-.--','z':'--..'}
	while kata[nol] is not '0' :
	    v=kata[nol]
	    x=dict[v]
	    katalist[nol]=x
	    nol += 1
	hasil=' ' .join(katalist)
	print hasil
inputkata=raw_input ('masukan kata atau kalimat : ')
hurufkecil=inputkata.lower()
morse(hurufkecil)

sekarang saya sudah pakai def (fungsi), yang ternyata ini berguna sekali untuk memanggil bagian perintah tertentu. oya sekarang juga sudah bisa huruf besar maupun huruf kecil. 🙂

oya kemarin saya belum sempat jelasin alur program ini.

setiap input akan ditambahkan sebuah karakter, yakni angka 0. misal input yang dimasukkan adalah helloworld, maka ditambahkan menjadi helloworld0. setelah itu diperiksa dari karakter pertama (variabel[0]) sampai karakter terakhir dari inputan tersebut. bila karakter tersebut ditemukan angka 0, maka pemeriksaan berhenti. pada pemeriksaan tersebut, input dijadikan data list dan setiap karakternya digantikan dengan karakter yang ada di dict, masing2 sudah ada keywordnya yaitu setiap karakter dari a-z.

hedeh, bingung juga jelasin. pokoke program ini jalan lancar. 🙂

kamus kode v.0.0.2

huff. pantaslah para programmer disanjung tinggi, ternyata mikir sebagai programmer itu sulit! (keluar dari mulut orang goblok).

nah, setelah saya mikir seharian duduk di depan layar monitor sambil corat-coret, akhirnya saya nemu algoritma yang tepat untuk mentranslasi karakter ke karakter lain. sebagai catatan, saya ndak nyontek lho, tapi mikir sendiri alur logikanya dari kemarin sore. kelamaan ya? namanya juga orang bego.

input=raw_input('
<pre>kamus kode v.0.0.2, silakan ketik kata atau kalimat, karakter huruf saja : ')
</pre>
end='0'
v=str
x=str
kata=input+end
katalist=list(input)
nol=0
dict={' ':'  ','a':'.-','b':'-...','c':'-.-.','d':'-..','e':'.','f':'..-.','g':'--.','h':'....','i':'..','j':'.---','k':'—.—','l':'.—..','m':'--','n':'-.','o':'---','p':'.--.','q':'--.-','r':'.-.','s':'...','t':'-','u':'..-','v':'...-','w':'.--','x':'-..-','y':'-.--','z':'--..'}
while kata[nol] is not '0' :
v=kata[nol]
x=dict[v]
katalist[nol]=x
nol += 1
hasil=' ' .join(katalist)
print hasil

fitur :

  • menerjemahkan huruf, kata, bahkan kalimat dalam jumlah tak terbatas ke dalam kode morse. selain huruf dilarang masuk.

thing to do :

  • bisa huruf besar kecil
  • mendeteksi input angka
  • menerapkan GUI

kamus kode v.0.0.1

belajar jadi uler. gegara ndak pernah belajar dan buka buku lupa lagi sama python. main-main sebentar, terlintas ide buat kamus morse. memang sudah banyak aplikasi penerjemahnya (googling sebentar nemu banyak), tapi bagaimana kalau buat sendiri pakai algoritma sendiri? 🙂

in baru permulaan, masih main-main.

morse.py

input=raw_input('kamus kode v.0.0.1, masukkan huruf (a-j): ')
jumlah=len(input)
if jumlah &gt; 1 :
	print 'masukkan satu huruf saja'
else :
	dict={'a':'.-','b':'-...','c':'-.-.','d':'-..','e':'.','f':'..-.','g':'--.','h':'....','i':'..','j':'.---'}
	print dict[input]

fitur :

 

  • menerjemahkan satu huruf dari a sampai j (hurup kecil tok) ke kode morse. KOK SATU HURUF? ya pelan-pelan dululah. 😀
  • mendeteksi kalau inputnya lebih dari satu huruf.

thing to do :

  • menerjemahkan kata, bahkan kalimat
  • mendeteksi input angka.
  • bisa huruf besar kecil.

beginning python – from novice to professional

banyak membantu saya belajar python. 🙂

unduh


This blog has been discontinued. All the contents, and new posts can be found at blog.pdft.net

RSS latest post @ blog.pdft.net

  • Sebuah galat telah terjadi; umpan tersebut kemungkinan sedang anjlok. Coba lagi nanti.
Indonesia Linux Conference 2011

stats

SEO Stats powered by MyPagerank.Net
Counter Powered by  RedCounter

hits

  • 354,157 hits


This blog is licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License.
pejuang mimpi tak ingkar janji