Setelah beberapa hari tidak aktif posting artikel baru, karena sibuk pekerjaan lain, hari ini saya ingin melanjutkan seri belajar python untuk tutorial menghitung jumlah kata di dalam string pada python.
Dalam kasus tertentu kadang kita di perhadapkan dengan kasus seperti ini, dimana perlu melakukan proses pencarian jumlah kata dalam suatu string, kalo tidak mengetahui caranya pasti akan membuat kita cukup kebingungan, padahal kalau tau caranya cukup mudah. Langsung saja simak pembahasannya berikut ini:
Program Python Menghitung Jumlah Kata pada String
Buat sebuah file python di teks editor dengan kode berikut:
Penjelasan Kode:
- import collections kode ini berfungsi untuk menginport modul collections karena kita akan menggunakan salah satu kelas di dalam modul tersebut yaitu kelas Counter.
- string=’PHP PYTHON JAVA PYTHON’ Sintak ini untuk membuat objek string dengan nilai yang ditampungnya.
- li=string.split(‘ ‘) Pada bagian ini kita akan memecah setiap kata di dalam string ke dalam list.
- ambil=collections.Counter(li).most_common() Sintak ini berfungsi untuk menghitung cacah atau banyaknya elemen di dalam suatu list. Dengan menggunakan metode most_common() yang merupakan method dari kelas Counter di dalam modul collections.
- Pada bagian akhir program kita menampilkan isi setiap elemen di dalam list ambil.
Hasil:
Dapat di lihat dari hasil output diatas program menunjukan kata ‘PYTHON‘ muncul sebanyak 2 kali ‘PHP‘ dan ‘JAVA‘ masing-masing satu kali sesuai dengan nilai string yang kita buat.
Contoh Lain
Pada contoh kedua kita buat program dengan menggunakan fungsi.
from collections import Counter def hitungKata(kata, kalimat): li = kalimat.split(' ') katas = Counter(li).most_common() d = {} for w in katas: d[w[0]] = w[1] try: print("%s : %d" % (kata, d[kata])) except KeyError as d: print("%s : 0" % kata) def main(): kalimat = "Python PHP JAVA Javascript Node.js Python JAVA Node.js" kata = input("Masukkan kata yang dicari: ") # mencari jumlah kata hitungKata(kata, kalimat) if __name__ == "__main__": main()Konsepnya sama dengan program pertama hanya saja disini kata yang ingin di cari kita masukan lewat fungsi input() yang kemudian akan di proses pada fungsi hitungKata(). Untuk mengantisipasi program dapat berjalan dengan baik saat kata yang dimasukan pengguna tidak di temukan di dalam kalimat string maka kita gunakan eksepsi engan blok try … except.
Perhatikan pada contoh output diatas, saya memasukan kata yang di cari adalah ‘Node.js’ maka program akan menampilkan hasilnya bahwa kata tersebut berjumlah 2. Pada percobaan kedua saya memasukan kata ‘HTML’ dan menampilkan nilai 0 karena kata HTML tidak ada di dalam string kalimat.
Dalam program ini kita akan belajar cara menghitung baris, kata, karakter, dan spasi dalam file yang diberikan. Semua ini akan dihitung dan ditampilkan sama sekali.
program
Pendekatan 1
def read(file): countWords, countLines, countChar, countSpace = 0,0,0,0 dengan open(file, 'r') sebagai readFile: untuk readLine di readFile: countLines += 1 val = 'Y' untuk readWord di readLine: if (readWord != ' ' dan val == 'Y'): countWords += 1 val = 'N' elif (readWord == ' '): countSpace += 1 val = 'Y' untuk readChar di readWord: if(readChar !=" " dan readChar !="\n"): countChar += 1 print("Line count", countLines) print("Word count: ", countWords) print("Char count", countChar) print ("Jumlah spasi", countSpace) file = 'demo.txt' read(file)Keluaran:
Pendekatan 2
import os def read(file): countWords, countLines, countChar, countSpace = 0,0,0,0 dengan open(file, 'r') sebagai readFile: untuk readline di readFile: readline = readline.strip(os.linesep) list = readline.split() countLines = countLines + 1 countWords = countWords + len(list) countChar = countChar + sum(1 untuk c di readline jika c tidak di (os.linesep, ' ')) countSpace = countSpace + sum( 1 untuk s di readline if s in (os.linesep, ' ')) print("Line count", countLines) print("Word count: ", countWords) print("Char count", countChar) print("Spasi count ", countSpace) file = 'demo.txt' read(file)Keluaran:
Penjelasan
Pendekatan 1:
- Buka file menggunakan fungsi open().
- Hitung jumlah baris dengan 1 untuk setiap loop.
- Penambahan jumlah kata, jumlah karakter, dan jumlah spasi tergantung pada kondisi dan mengembalikan nilai masing-masing.
Pendekatan 2:
- Untuk memisahkan baris kita telah menggunakan fungsi os.linesep() dari modul OS.
- Fungsi built-in Python strip() dan split() digunakan untuk mengekstrak kata, karakter dan counter yang bertambah.