Fakultas Ilmu Komputer UI

TPEkstra_2_1806196806.py 2.41 KB
Newer Older
1
2
3
4
import urllib.request

def get_data(situs):
    url_salah = True
5
    while url_salah == True:
6
7
8
9
10
11
        try:
            page = urllib.request.urlopen(situs)
            text = page.read().decode("utf8")
            url_salah = False
            return text
        except:
12
            return "Terjadi eror"
13
14
15

def get_data_per_wilayah(nama_wilayah):
    text = get_data("https://pudyprima.github.io/covid19-jakarta").lower()
16
17
    if text == "terjadi eror":
        return "Terjadi eror"
18
    else:
19
20
21
22
        mulai = text.find("<td>"+nama_wilayah.lower()+"</td>")
        if mulai == -1:
            return "Maaf, "+nama_wilayah+" tidak ada dalam daftar wilayah."
        else:
23
24
            awal = text.find('<td>',mulai+1)
            akhir = text.find('</td>',awal)
25
            return int(text[awal+len('<td>'):akhir])
26

27
28
29
30
def get_data_jakarta():
    text = get_data("https://pudyprima.github.io/covid19-jakarta").lower()
    if text == "terjadi eror":
        return "Terjadi eror"
31
    else:
32
33
34
35
36
37
38
39
40
41
42
        mulai = 0
        jumlah_keseluruhan = 0
        while text.find('jakarta',mulai) !=-1 :
            mulai = text.find('<td>',mulai+1)
            nama_wilayah = text[mulai+len('<td>'):text.find('</td>',mulai)]
            if nama_wilayah.startswith('jakarta') == True:
                awal = text.find('<td>',mulai+1)
                akhir = text.find('</td>',awal)
                jumlah_keseluruhan += int(text[awal+len('<td>'):akhir])
            mulai +=1
        return jumlah_keseluruhan
43

44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
def get_total_kasus_by_keyword(keyword):
    text = get_data("https://pudyprima.github.io/covid19-indonesia").lower()
    if text == "terjadi eror":
        return "Terjadi eror"
    else:
        jumlah = 0
        mulai = text.find(keyword.lower())
        if mulai == -1:
            return "maaf, "+keyword+" tidak ada dalam daftar"
        else:
            while text.find(keyword.lower(),mulai)!=-1:
                mulai = text.find(keyword.lower(),mulai+1)
                jumlah +=1
            return jumlah

59
60
61
def main():
    print(get_data_per_wilayah('Jakarta Barat'))
    print(get_data_per_wilayah('Jakarta Pusat'))
62
    print(get_data_per_wilayah('Jakarta selatan'))
63
64
65
    print(get_data_per_wilayah('Jakarta Timur'))
    print(get_data_per_wilayah('Jakarta Utara'))
    print(get_data_jakarta())
66
67
68
    print(get_total_kasus_by_keyword('perempuan'))
    print(get_total_kasus_by_keyword('dalam perawatan'))
    print(get_total_kasus_by_keyword('jawa tengah'))
69
main()