Skip to main content

Bisakah Membuat Aplikasi Android Dengan Python?

membuat aplikasi android dengan python

Ada pertanyaan Bisakah Membuat Aplikasi Android Dengan Python? Jawaban singkat dan padat adalah Bisa!!! dengan persyaratan khusus😁️😁️😁️ Karena bahasa python bukan termasuk bahasa resmi untuk membuat aplikasi Android. Dia memiliki bahasa khusus untuk mendevelopnya yaitu:

  • Kotlin, sejak 2017
  • Java dengan Android Software Development kit(SDK)
  • C++ dengan NDK
  • C# dengan .NetFramework dan Xamarin.Android
  • Python menggunakan Kivy, BeeWare, Chaquopy (plugin Android Studio), Pyqtdeploy, QPython, SL4A (Scripting Layer for Android), dan PySide
  • Corona Software Development Kit untuk develop Android menggunakan Lua
  • HTML, CSS, dan JavaScript juga bisa untuk membuat aplikasi Android menggunakan Adobe PhoneGap Framewrok. Tapi ini hanya sebatas WebView yang dipaket seperti App

Banyak juga ya ternyata... Ok, karena kita sekarang sedang membahas membuat aplikasi Android dengan Python, jadi hanya fokus di Python saja. Dan kalau dilihat dari list di atas, ada banyak juga framework python yang tersedia untuk digunakan. Kurang lebihnya ada 7 plus 1 plugin, tapi disini saya tidak membahas semua. Saya hanya ingin membahas pada Kivy sahaja untuk kali ini.

Untuk framework lainnya mungkin akan dibahas lain waktu saja (mungkin ya), karena saya saat ini sedang mendalami belajar Kivy. Kivy ini bisa untuk membuat aplikasi di Android, iOS, Linux, Windows, Raspb. Jadi cukup belajar satu untuk bisa membuat semua.

Back to top

1) Persiapan Membuat Aplikasi Android

Karena sudah belajar python, jadi ingin mencoba untuk membuat aplikasi android menggunakan python. Mungkin karena tidak atau belum sempat belajar Kotlin atau bahkan malas (ini..) tapi untungnya di pemrograman ini menyediakan juga framework yang siap digunakan untuk membuat app plus alat mengkonversi menjadi apk. Karena tidak mungkin kan menjalankan .py di Android, apalagi kalau aplikasi kita akan diupload ke Play Store, ya mana diterima disana.

Dan juga berhubung baru belajar Kivy yang lain belum dipelajari, jadi mulai aja dari Kivy. Lalu tidak seperti saat kita membuat aplikasi desktop, cukup dengan python dan dieksekusi bisa dijalankan. Kita perlu emulator untuk mencoba dijalankan pada perangkat android virtual, biar makin sempurna pekerjaan ini.

Hal yang dibutuhkan

  1. Pengetahuan Dasar Python 3
  2. Editor (PyCharm, Visual Code Studio, Teks Editor lainnya)
  3. Pustaka Kivy tentunya
  4. Kivy Builder (Buildozer) atau briefcase. Tapi kita gunakan Buildozer saja yang support dengan Kivy
  5. Emulator

Nah, kira-kira itu yang perlu dipersiapkan dan kita bahas satu persatu supaya lebih enak dan lebih mudah dipahami. Lalu... sekarang app apa yang akan kita buat ya sebagai contoh? Bagaimana kalau kita buat kalkulator aja deh ya...? semoga kalian semua setuju😂️😂️😂️

Kenapa kalkulator ya? kan sudah banyak app kalkulator. Ini hanya untuk pembelajaran saja, kan masih bisa dikembangkan untuk hal lain. Tujuannya supaya kita tau bagaimana cara membuat aplikasi android dengan python. Setelah memahami konsepnya barulah membuat proyek sendiri yang lebih bagus dari ini.

Back to top

2) Prasyarat Aplikasi

Waduh ada syarat lagi... Gak banyak dalam kasus ini kita membuat kalkulator jadi semestinya juga mengerti tentang basic dari matematika. Seperti itu kalau kita membuat proyek, sebaiknya memahami tentang permasalahan yang akan diselesaikan. Seorang programmer python yang memiliki basic web misalnya, tentu akan lebih baik belajar django atau flask. Dan seterusnya.

Cara install kivy tentu kalian semua sudah tau, kan? hanya dengan pip3 install kivy, Ok saya kasih cara selengkapnya deh..

  1. Membuat virtualenv, Kalau ada yang belum tau bisa dibaca kembali Cara Membuat Virtual Environment Python
  2. Upgrade PIP dan Setuptools pip3 install --upgrade pip setuptools, ini sebaiknya dilakukan juga karena saya pernah install framework ini gagal terus dan ternyata solusinya adalah upgrade pip dan setuptools baru lancar.
  3. Install Kerangka kerjanya pip3 install Kivy
Back to top

3) Pendekatan Dasar Membuat Kalkulator

Apalah ya pake acara pendekatan segala 😂️, supaya kita tau bagaimana jalan ceritanya biar tidak pusing nanti dan bertanya-tanya.

Dalam membuat layout kerangka kerja ini punya beberapa pilihan, ada BoxLayout, GridLayout, dan lainnya. Kita coba BoxLayout atau GridLayout? atau mau dicoba semuanya? Ya mungkin kalau waktunya cukup.

Ok, ringkasan yang akan dilakukan adalah seperti ini

  1. import Kivy
  2. import KivyApp
  3. import GridLayout
  4. import config
  5. Set versi minimum yang bisa menggunakan aplikasi ini
  6. Membuat class Layout,
    Mendefinisikan fungsi kalkulator
  7. Membuat class App
  8. Membuat .kv file sesuai dengan nama class.
    • Membuat tombol
    • Menambahkan style di tombol
    • Menambahkan fungsional pada tombol
  9. Return Layout
  10. Menjalankan instance kelas
Back to top

4) Membuat Aplikasi Android dengan Python

Pada praktik ini saya menggunakan Visual Kode Studio untuk mengedit dan membuat file dan sistem yang digunakan adalah Python 3.7 pada sistem operasi Linux Devuan.

Baik, sekarang saya membuat sebuah file bernama main.py lalu menuliskan baris kode berikut ini:

import kivy
from kivy.app import App
kivy.require('1.11.0')

from kivy.uix.gridlayout import GridLayout
from kivy.config import Config
from kivy.uix.button import Button

Config.set('graphics', 'resizable', 1)

class CalcGridLayout(GridLayout):
    def calculate(self, calculation):
        if calculation:
            try:
                self.display.text = str(eval(calculation))
            except Exception:
                self.display.text = 'Error'

class CalculatorApp(App):
    def build(self):
         return CalcGridLayout()

if __name__ == "__main__":
    CalculatorApp().run()

Dan berikut ini adalah kode pada file calculator.kv

<[email protected]>:
    font_size: 32

<CalcGridLayout>:
    id: calculator
    display: entry
    rows: 6
    padding: 10
    spacing: 10

    BoxLayout:
        TextInput:
            id: entry
            font_size: 32
            multiline: False

    BoxLayout:
        spacing: 10
        CustButton:
            text: "7"
            on_press: entry.text += self.text
        CustButton:
            text: "8"
            on_press: entry.text += self.text
        CustButton:
            text: "9"
            on_press: entry.text += self.text
        CustButton:
            text: "*"
            on_press: entry.text += self.text

    BoxLayout:
        spacing: 10
        CustButton:
            text: "4"
            on_press: entry.text += self.text
        CustButton:
            text: "5"
            on_press: entry.text += self.text
        CustButton:
            text: "6"
            on_press: entry.text += self.text
        CustButton:
            text: "-"
            on_press: entry.text += self.text

    BoxLayout:
        spacing: 10
        CustButton:
            text: "1"
            on_press: entry.text += self.text
        CustButton:
            text: "2"
            on_press: entry.text += self.text
        CustButton:
            text: "3"
            on_press: entry.text += self.text
        CustButton:
            text: "+"
            on_press: entry.text += self.text

    BoxLayout:
        spacing: 10
        CustButton:
            text: "AC"
            on_press: entry.text = ""
        CustButton:
            text: "0"
            on_press: entry.text += self.text
        CustButton:
            text: "="
            on_press: calculator.calculate(entry.text)
        CustButton:
            text: "/"
            on_press: entry.text += self.text

    BoxLayout:
        CustButton:
            font_size: 20
            text: "Scientific Calculator"
            on_press: entry.text = ""

Mudah kan membuat aplikasi android dengan python kivy? Pada file main.py adalah program logikanya dan file calculator.kv untuk mengatur tampilan, semacam CSS begitulah...

membuat aplikasi android dengan python
Back to top

5) Porting KE Android

Setelah kita membuat aplikasi python dengan Kivy dan telah berhasil dijalankan, juga diuji coba dapat bekerja dengan baik sesuai dengan yang diharapkan. Tahap berikutnya adalah kita akan menkonversi menjadi file .apk agar bisa diinstall di perangkat Android. Ini konversi ke .apk ya bukan Konversi Tipe Data.

Untuk menDeploy ke Android kita menggunakan Buildozer yang saat ini baru bisa berjalan di Linux.

5.1) Install Buildozer

Buildozer adalah alat untuk membuat paket aplikasi dengan cara yang mudah, sebuah file buildozer.spec akan dibuat pada root direktory aplikasi yang dibuat. File ini berisi penjelasan berupa persyaratan dan pengaturan app termasuk pada ikon, judul, modul yang disertakan, dan lainnya. Berdasarkan spesifikasi itu, buildozer akan membuat paket Andoroid, iOS, Windows, Linux, dan OSX.

Tapi untuk saat ini Buildozer baru mendukung untuk pemaketan Android via Python-for-Android project sedangkan iOS menggunakan kivy-ios. Tool ini akan secara otomatis mengunduh dan menyiapkan dependensi build Android SDK NDK.

Untuk install Buildozer bisa dilakukan dengan cara

# Install versi stabil, dan direkomendasikan
pip install buildozer

# Atau install versi dev (development)
pip install https://github.com/kivy/buildozer/archive/master.zip

# Dengan GIT 
git clone https://github.com/kivy/buildozer
cd buildozer
python3 setup.py build
pip install -e

Masuk ke forder aplikasi kemudian jalankan perintah ini

# membuat file buildozer.spec jika belum ada
buildozer init

Kemudian edit file tersebut sesuai dengan kebutuhan, kalau dirasa sudah cukup. Simpan dan

# Jalankan perintah berikut
buildozer android debug deploy run

Dan proses berjalan, tapi ditengah jalan proses mengalami error, ternyata dia meminta cython.

Debian 'dpkg' package management program version 1.19.7 (amd64).
This is free software; see the GNU General Public License version 2 or
later for copying conditions. There is NO warranty.
# Search for Git (git)
#  -> found at /usr/bin/git
# Search for Cython (cython)
# Cython (cython) not found, please install it.

Ok, langsung saja eksekusi pip3 install cython dan beberapa paket tambahan yang perlu diinstall juga. (tapi sebenarnya saya heran) kenapa ini tidak download otomatis paket yang dibutuhkan?. Kalau ada masalah sama seperti saya bisa coba install seperti ini, pada Debian/Ubuntu Based.

sudo apt update
sudo apt install -y git zip unzip openjdk-8-jdk python3-pip autoconf libtool pkg-config zlib1g-dev libncurses5-dev libncursesw5-dev libtinfo5 cmake libffi-dev libssl-dev

pip3 install --user --upgrade Cython==0.29.19 virtualenv  # --user tidak diperlukan jika menginstallnya pada virtualenv

5.2) Paking Menggunakan Kiv Launcher

Kivy Launcher adalah aplikasi Android untuk menjalankan percobaan app yang kita buat, install Kivy Launcher melalui Play Store atau bisa downloadnya di Alamat https://kivy.org/downloads/1.9.0/KivyLauncher-1.9.0.0.apk cara installnya sama saja seperti install aplikasi Android lainnya.

Setelah Kivy Launcher berhasil dipasang, tempatkan Kivy Project di folder Kivy yang terletak di eksternal storage (/sdcard)

/sdcard/kivy/<folder aplikasi kita>

Dialam folder aplikasi kita harus berisi file main.py ini adalah kode program app yang dibuat dan android.txt berisi list persyaratan yang berhubungan dengan software yang sedang dikembangkan. Isi file android.txt minimal harus ada

title=<Nama Aplikasi>
author=Nama pembuat
orientation=<portrait|landscape>

Jalankan Kivy Launcher dan pilih proyek yang ada.

Back to top

6) Android Emulator

Kadang kita membutuhkan sebuah virtualisasi, beguna untuk menguji dari pada menginstall ke perangkat Android sungguhan. Dengan virtualisasi kita bisa membuat perangkat Android dengan spesifikasi tertentu. Berikut ini list emulator android

  1. Genymotion
  2. Androi VM
  3. Anbox
  4. Android-x86
  5. Shashlik
  6. ARChon
  7. Android SDK
  8. Andy OS
  9. Jar of Beans
  10. Bliss

10 Android Virtual Machine dan Android emulator, yang mungkin akan dibutuhkan saat membuat aplikasi android dengan python

Back to top

7) Kesimpulan

Proyek ini belum selesai dan belum benar-benar dapat berjalan dengan baik, ini catatan saya selama membuat aplikasi android dengan python. Selama tulisan ini belum fix, akan masih ada update lagi kedepannya disinis

Back to top