Lewati ke konten utama

Tiga Metode untuk Mengonversi Skrip Python Menjadi Berkas Exe

Pelajari apa itu berkas executable dan cara mengonversi skrip Python menjadi berkas .exe menggunakan PyInstaller, Nuitka, dan auto-py-to-exe.
Diperbarui 5 Jun 2026  · 7 mnt baca

Pada artikel ini, saya akan membahas sejumlah skenario yang membenarkan konversi berkas Python Anda menjadi executable. Saya juga akan menunjukkan cara mengonversi berkas Python menjadi berkas executable menggunakan tiga pustaka Python: PyInstaller, Nuitka, dan auto-py-to-exe.

Klon repositori Github ini untuk mengikuti tutorialnya.

Mengapa Mengonversi Python ke .exe?

Berkas executable — berkas yang disimpan dengan ekstensi .exe — digunakan untuk memasang atau menjalankan aplikasi perangkat lunak pada komputer dengan sistem operasi Windows. Berkas yang memungkinkan komputer Windows menjalankan sebuah aplikasi adalah berkas .exe.

Ada beberapa alasan mengapa Anda mungkin ingin mengonversi program Python menjadi berkas executable. Mari kita lihat beberapa di antaranya:

Aktivitas berbahaya

Sayangnya, sebagian orang di internet suka menyebarkan perangkat lunak berbahaya untuk menginfeksi perangkat orang lain dan mencuri informasi mereka. Salah satu cara untuk melawan mereka adalah dengan tidak terjebak dalam penipuan mereka — artinya jangan sembarangan mengunduh atau membuka berkas .exe yang tidak berasal dari sumber tepercaya.

Aksesibilitas

Alasan lain untuk mengonversi berkas Python menjadi executable adalah agar dapat membagikan aplikasi kepada pengguna lain. Program Python biasanya terdiri dari beberapa dependensi yang perlu dipasang pengguna lain sebelum program dapat dijalankan. Bagaimana jika orang tersebut tidak tahu cara menulis kode? Dalam skenario seperti ini, mengharapkan pengguna belajar ngoding terlebih dahulu sebelum memakai aplikasi bisa jadi tidak masuk akal. Mengonversi berkas Python menjadi executable memungkinkan pengguna mengakses program Anda tanpa harus mengetahui Python.

Melindungi kode sumber

Namun, sekalipun mereka tahu cara ngoding, mengonversi berkas Python menjadi executable bisa menjadi opsi yang baik untuk mencegah kode Anda dicuri. Berkas executable membantu mencegah pencurian kode karena ia membuat versi terkompilasi dari kode sumber Anda, yang lebih sulit dipahami dibandingkan kode sumber aslinya.

Penjadwalan tugas

Anda juga mungkin ingin menjadwalkan sebuah tugas di komputer Anda untuk mengeksekusi berkas .exe pada waktu tertentu.

Cara Mengonversi Skrip Python Menjadi Berkas .exe 

Sekarang Anda sudah tahu apa itu berkas .exe dan mengapa mungkin ingin mengonversi berkas Python menjadi berkas .exe, mari kita lihat cara melakukannya di Python. Pada bagian ini, kita akan membahas tiga kerangka kerja: pyinstaller, nuitka, dan auto-py-to-exe.

Satu hal yang perlu diingat adalah auto-py-to-exe memiliki masalah kompatibilitas yang diketahui dengan Python 3.11 dan yang lebih baru, dan umumnya hanya andal hingga Python 3.10 kecuali Anda menggunakan versi tertentu yang lebih baru dan dependensi yang disesuaikan dengan cermat.

Dengan demikian, mari kita mulai.

Menyiapkan skrip

Demo ini akan menggunakan dataset New York City Airbnb open data

Sebelum data scientist dapat menganalisis sebuah dataset, datanya harus diformat agar kompatibel dengan alat yang mereka gunakan. Karena itu, membuat skema validasi secara efektif mendefinisikan semua validasi yang berlaku untuk setiap field secara deklaratif. Proses ini bisa cukup repetitif. Untuk mencegah tim data scientist kami terjebak pada tugas berulang, kami membuat skrip validasi otomatis yang dijalankan secara berkala. 

Catatan: Berhati-hatilah saat menggunakan path relatif jika skrip Anda harus membaca data. Lebih baik gunakan path absolut untuk memastikan executable Anda berjalan sebagaimana mestinya. 

import pandas as pd
from pandas.api.types import CategoricalDtype

def perform_validation(filename:str):
    """
    A function to validate inputs for NYC Airbnb Open data.
    """
    path_to_data = "../.."
    data = pd.read_csv(f"{path_to_data}{filename}")



    # Convert neighbourhood_group to type category
    neighbourhood_group_to_cat = CategoricalDtype(
        categories=["Manhattan", "Brooklyn", "Queens", "Bronx", "Staten Island"],
        ordered=False
        )
 
    data["neighbourhood_group"] = data["neighbourhood_group"].astype(neighbourhood_group_to_cat)

    # Convert room_type to type category
    room_type_to_cat = CategoricalDtype(
        categories=["Entire home/apt", "Private room", "Shared room"],
        ordered=False
    )

    data["room_type"] = data["room_type"].astype(room_type_to_cat)

    # Convert last_review to datetime
    data["last_review"] = pd.to_datetime(data["last_review"])

    # Minimum nights a person can stay is one night
    assert data["minimum_nights"].min() >= 1

    # Minimum number of reviews is 0
    assert data["number_of_reviews"].min() >= 0
 
    # Minimum number of reviews per month
    assert data["reviews_per_month"].min() >= 0.00

    # Minimum amount of listings per host
    assert data["calculated_host_listings_count"].min() >= 1

    # Number of days when listing is available for books
    # Could be 0 if tennant has long term booking
    assert data["availability_365"].min() >= 0

    # Save validated data
    data.to_csv("validated_ab_nyc_2019.csv", index=False)

if __name__ == "__main__":
    # User inputs filename
    filename = input("Enter filename: ")
 
    # Ensure it's a string
    if not filename.isalpha():
        filename = str(filename)
 
    # Automated validation
    perform_validation(filename)

Catatan: kami telah menyalin dan menempelkan skrip ini ke dalam direktori pyinstaller, nuitka, dan auto-py-to-exe

# Directory structure
|   AB_NYC_2019.csv
|  
+---auto_py_to_exe
|   |   requirements.txt
|   |   validation.py         
+---pyinstaller
    |   requirements.txt
    |   validation.py

Setiap direktori memiliki lingkungan virtualnya sendiri tempat kami memasang requirements: lihat pyinstaller requirements atau auto-py-to-exe requirements. Jika Anda mengikuti kodenya, pastikan membuat lingkungan virtual di direktori pyinstaller dan direktori auto-py-to-exe. 

Secara garis besar, skrip di atas berisi sebuah fungsi — pelajari lebih lanjut tentang menulis fungsi di Python — yang membaca sebuah dataset lalu mendefinisikan format yang diharapkan untuk field tertentu dalam data. Langkah berikutnya adalah mengonversi skrip Python ini menjadi berkas executable yang dapat dijalankan secara berkala untuk menghasilkan dataset terformat. 

Metode 1: PyInstaller

PyInstaller memungkinkan Anda dengan cepat mengonversi berkas Python menjadi berkas executable dari terminal. Setelah Anda membuat lingkungan virtual dan memasang requirements untuk skrip Anda (termasuk pyinstaller), cukup buka terminal dan navigasikan ke direktori tempat berkas Python yang ingin Anda konversi berada. 

Langkah selanjutnya adalah menjalankan perintah berikut: 

pyinstaller --onefile validation.py

Awalnya, Anda akan melihat beberapa log di mana log terakhir akan mengatakan sesuatu seperti “completed successfully” — jika berkas executable berhasil dibuat. 

executable file being created

Gambar 1: Log yang menunjukkan berkas executable sedang dibuat dan selesai dengan sukses.

Setelah proses ini selesai, dua direktori baru, build dan dist, akan dibuat di direktori yang sama dengan lokasi berkas Python. Di direktori dist, Anda akan menemukan skrip validation.exe.

validation.exe on a dataset

Gambar 2: GIF yang memperlihatkan eksekusi validation.exe pada sebuah dataset.

Untuk menjalankan skrip, cukup klik dua kali. Ini akan menampilkan konsol yang meminta Anda memasukkan nama berkas data yang ingin Anda jalankan validasinya. Setelah Anda memasukkan nama berkas, konsol akan tertutup, dan data yang telah divalidasi akan dibuat di direktori yang sama dengan berkas validation.exe — lihat Gambar 2. 

Metode 2: Nuitka

Nuitka adalah pendekatan lain yang layak dipertimbangkan. Tidak seperti PyInstaller, yang membundel skrip Python Anda dengan interpreter Python, Nuitka benar-benar mengompilasi kode Python Anda ke kode C. Ini menghasilkan perlindungan kode sumber yang lebih baik, potensi eksekusi lebih cepat, dan sering kali ukuran berkas yang lebih kecil. Konsekuensinya adalah waktu kompilasi lebih lama dan penyiapan yang lebih kompleks.

Instalasi dan Penyiapan

Setelah Anda membuat lingkungan virtual dan memasang Nuitka menggunakan pip install nuitka, Anda perlu memastikan kompiler C tersedia di sistem Anda. Kompiler yang dibutuhkan bergantung pada sistem operasi:

  • Windows: Unduh dan pasang Microsoft Visual C++ Build Tools (gratis) dari situs Visual Studio, atau gunakan MinGW

  • macOS: Pasang Xcode Command Line Tools dengan xcode-select --install

  • Linux: GCC biasanya sudah terpasang; jika belum, pasang melalui manajer paket Anda

Setelah terpasang, Nuitka akan secara otomatis mendeteksi kompiler Anda. Jika menemui masalah, pastikan kompiler ada di PATH sistem Anda.

Mengonversi Skrip Validasi dengan Nuitka

Mari konversi skrip validasi NYC Airbnb yang sama menggunakan Nuitka, seperti yang kita lakukan dengan PyInstaller dan auto-py-to-exe. Untuk mengompilasi skrip menjadi executable, jalankan:

python -m nuitka --onefile --follow-imports --include-package=pandas validation.py

Berikut penjelasan tiap flag:

  • --onefile: Membuat satu berkas executable (alih-alih direktori dengan banyak berkas dan dependensi)

  • --follow-imports: Secara otomatis menyertakan semua modul yang diimpor skrip Anda

  • --include-package=pandas: Secara eksplisit menyertakan paket pandas (beberapa paket tidak terdeteksi otomatis, jadi ini memastikan paketnya dibundel)

Tidak seperti PyInstaller, yang selesai sekitar 30 detik, Nuitka akan memakan waktu jauh lebih lama — biasanya 5–15 menit tergantung kompleksitas kode dan kecepatan sistem Anda. Anda akan melihat output kompilasi di terminal yang menunjukkan progres tahap kompilasi C.

Setelah selesai, Anda akan melihat pesan sukses yang menunjukkan executable telah dibuat. Berkas executable terkompilasi dibuat di direktori yang sama dengan berkas validation.py.

Klik ganda validation.exe atau jalankan dari command line. Sebuah jendela konsol akan terbuka meminta Anda memasukkan nama berkas, sama seperti dengan PyInstaller. Setelah mengetik AB_NYC_2019.csvdan menekan enter, validasi berjalan, konsol tertutup, dan berkas baru validated_ab_nyc_2019.csv dibuat di direktori yang sama, persis seperti versi PyInstaller.

Metode 3: auto-py-to-exe

Langkah pertama untuk membuat berkas executable menggunakan auto-py-to-exe adalah menjalankannya dengan perintah berikut: 

auto-py-to-exe 

Ini akan menampilkan graphical user interface (GUI) yang akan membantu kita mengonversi berkas Python menjadi berkas executable. 

graphical user interface

Gambar 3: GUI yang ditampilkan setelah menjalankan perintah auto-py-to-exe. 

Catatan: jika tidak berfungsi, pastikan Anda telah membuat lingkungan virtual di direktori auto-py-to-exe dan memasang requirements.txt di lingkungan virtual Anda dengan perintah berikut: pip install -r requirements.txt.

GUI memiliki beberapa field yang harus kita isi. Mari kita lihat setiap bagiannya dan uraikan: 

  • Specific Location: Pada field ini, Anda harus menambahkan lokasi skrip dari berkas Python yang ingin Anda konversi menjadi executable.  
  • Onefile: Di sini Anda memilih apakah ingin membuat satu direktori atau satu berkas. Satu direktori akan berisi semua dependensi yang diperlukan untuk mengeksekusi skrip Anda dan sebuah berkas executable, sedangkan memilih “One File” akan membuat satu berkas executable. 
  • Console Window: Pilihan antara “Console Based” atau “Window Based” bergantung pada apa yang dikembalikan skrip Anda. Misalnya, skrip yang kita buat di atas membutuhkan pengguna untuk memasukkan nama berkas. Karena itu, solusi “Console Based” direkomendasikan karena akan membuka konsol setelah menjalankan berkas executable. Jika tidak perlu menampilkan output konsol setelah menjalankan berkas executable maka “Window Based” adalah opsi yang baik. 

Kita juga disediakan opsi lain untuk mengonfigurasi pembuatan berkas executable (mis. menambahkan ikon, berkas tambahan, dan lainnya). Pada bagian ini, kita juga dapat mengubah path tempat kita ingin mengekspor berkas yang dihasilkan oleh berkas executable: untuk melakukannya, pilih toggle “Settings” dan telusuri direktori output pilihan Anda. Langkah terakhir adalah memilih “Convert .py to .exe” untuk mengonversi berkas Python kita. 

Lihat GIF pada Gambar 4 untuk melihat bagaimana kami mengonfigurasi berkas executable kami. 

Auto py to exe

Gambar 4: GIF yang menunjukkan konfigurasi untuk auto-py-to-exe

Saat kita kembali ke direktori auto-py-to-exe, akan ada direktori bernama output: di sinilah berkas validation.exe kita berada. Pilih berkas tersebut untuk menjalankannya, yang akan menampilkan konsol yang meminta Anda memasukkan nama berkas:

executable validation file

Gambar 5: Konsol yang ditampilkan setelah menjalankan berkas executable validasi. 

Cukup masukkan nama berkas — pada contoh ini, AB_NYC_2019.csv — lalu tekan enter. Ini akan menutup konsol dan membuat berkas baru di direktori output (tempat berkas executable berada) bernama validated_ab_nyc_2019.csv.

PyInstaller vs Nuitka

Berikut perbandingan Nuitka dan PyInstaller pada skrip validasi yang sama, beserta auto-py-to-exe sebagai alternatif GUI:

Metrik

PyInstaller

auto-py-to-exe

Nuitka

Ukuran executable

rata-rata

rata-rata

20–30% lebih kecil

Waktu build

rata-rata

rata-rata

16x lebih lama

Waktu mulai

~2 detik

~2 detik

~1 detik

Waktu jalan (tugas validasi)

~3 detik

~3 detik

~2,5 detik

Perlindungan kode sumber

Sedang

Sedang

Sangat baik

Python 3.8–3.10

✅ Sangat baik

✅ Sangat baik

✅ Sangat baik

Python 3.11+

✅ Sangat baik

⚠️ Masalah yang diketahui

✅ Sangat baik

PyInstaller dan Nuitka sama-sama menawarkan dukungan andal di semua versi Python modern, sementara auto-py-to-exe memiliki masalah kompatibilitas yang diketahui dengan Python 3.11 dan yang lebih baru. Nuitka menghasilkan executable yang lebih kecil dan lebih cepat dengan perlindungan IP yang lebih unggul — tetapi proses build kira-kira 16 kali lebih lambat dibanding PyInstaller.

Kesimpulan

Pada artikel ini, Anda telah mempelajari: 

  • Apa itu berkas Python
  • Apa itu berkas executable dan mengapa bisa berguna 
  • Cara mengonversi skrip Python menjadi executable menggunakan pyinstaller, yang merupakan alat hebat bagi mereka yang lebih nyaman dengan operasi command line. 
  • Cara mengonversi skrip Python menjadi executable menggunakan auto-py-to-exe, yang menyediakan antarmuka grafis (GUI) bagi pengguna untuk mengonfigurasi bagaimana berkas executable harus dibuat. 

Pelajari lebih lanjut tentang bagaimana Anda dapat memanfaatkan Python untuk data science di jalur karier Associate Data Scientist with Python dari DataCamp.

FAQ

Bisakah saya menyertakan berkas tambahan (mis., gambar, berkas konfigurasi) di dalam executable?

Ya, ketiga alat memungkinkan Anda membundel berkas tambahan yang dibutuhkan skrip. Untuk PyInstaller dan Nuitka, Anda dapat menggunakan opsi --add-data untuk menentukan berkas yang akan disertakan. Di auto-py-to-exe, ada opsi di GUI untuk menambahkan berkas di bawah "Additional Files." Pastikan Anda menentukan path relatif atau absolut dengan benar agar executable dapat mengakses berkas tersebut.

Bagaimana cara menambahkan ikon khusus ke berkas executable?

Anda dapat menambahkan ikon khusus ke executable dengan menentukan berkas .ico. Untuk PyInstaller, gunakan flag --icon diikuti path ke berkas .ico Anda. Di auto-py-to-exe, Anda dapat mengatur path ikon pada field "Icon" di GUI. Nuitka juga mendukung flag --windows-icon-from-ico. Perhatikan bahwa berkas ikon harus berformat .ico.

Mengapa berkas executable saya sangat besar, dan bagaimana cara menguranginya?

Berkas executable mungkin menyertakan semua dependensi, pustaka, dan interpreter Python, yang dapat membuat ukurannya besar. Untuk menguranginya:

  • Gunakan opsi --onefile di PyInstaller atau Nuitka untuk membundel semuanya ke satu berkas.
  • Kecualikan pustaka yang tidak diperlukan menggunakan opsi --exclude-module di PyInstaller atau Nuitka.
  • Pertimbangkan menggunakan alat seperti UPX untuk mengompresi executable yang dihasilkan (berfungsi dengan PyInstaller dan auto-py-to-exe).
  • Pertimbangkan menggunakan Nuitka, yang biasanya menghasilkan executable 20–30% lebih kecil dibanding PyInstaller.

Bisakah saya membuat executable untuk sistem operasi yang berbeda?

PyInstaller, auto-py-to-exe, dan Nuitka semuanya spesifik platform. Untuk membuat executable untuk sistem operasi lain, Anda perlu menggunakan alat kompilasi lintas platform atau menyiapkan mesin virtual atau container untuk OS target. Misalnya, untuk membuat executable Windows di Linux, Anda dapat menggunakan Wine atau Docker dengan lingkungan Windows.

Apa alternatif untuk pyinstaller dan auto-py-to-exe?

Alat lain untuk membuat executable antara lain:

  • cx_Freeze: Alat lintas platform untuk membuat executable.
  • py2exe: Alat khusus Windows untuk membuat executable dari skrip Python.

Kurtis Pykes 's photo
Author
Kurtis Pykes
LinkedIn
Topik

Kursus untuk Python

Kursus

Python Tingkat Menengah

4 Hr
1.4M
Tingkatkan keterampilan data science Anda dengan membuat visualisasi menggunakan Matplotlib dan memanipulasi DataFrame dengan pandas.
Lihat DetailRight Arrow
Mulai Kursus
Lihat Lebih BanyakRight Arrow
Terkait

blogs

Spaghetti Plot dan Jalur Badai

Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Hugo Bowne-Anderson's photo

Hugo Bowne-Anderson

13 mnt

blogs

Tutorial Korelasi di R

Dapatkan pengenalan dasar-dasar korelasi di R: pelajari lebih lanjut tentang koefisien korelasi, matriks korelasi, plotting korelasi, dan sebagainya.
David Woods's photo

David Woods

13 mnt

blogs

40 Pertanyaan Wawancara DBMS Teratas di 2026

Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Dario Radečić's photo

Dario Radečić

15 mnt

blogs

12 Alternatif ChatGPT Terbaik yang Bisa Anda Coba pada 2026

Artikel ini menyajikan daftar alternatif ChatGPT yang akan meningkatkan produktivitas Anda.
Javier Canales Luna's photo

Javier Canales Luna

14 mnt

Lihat Lebih BanyakLihat Lebih Banyak