Lompat ke konten
dokumentasi.id
Commit a5cb8ad
v2
Star20 rb

Kamu membaca versi lama. Halaman ini hanya bisa dibaca.

2

Instalasi dan Dependensi

GhostTrack hanyalah satu skrip Python, GhostTR.py, yang bergantung pada dua pustaka pihak ketiga. Karena itu pemasangan hanya butuh git, python3, dan dua paket dari PyPI. Halaman ini memandu urutannya di Linux dan Termux, lalu menunjukkan titik saat menu benar-benar tampil. README menandai rilis yang dipakai di sini sebagai Version 2.2 (README.md:6-7).

Prasyarat sistem

Pemasangan git dan python3 berbeda per platform, tetapi hanya berbeda di nama manajer paket. Tidak ada langkah lain yang dijalankan sebelum clone.

PlatformPerintahSumber
Linux (deb)sudo apt-get install git lalu sudo apt-get install python3README.md:9-13
Termuxpkg install git lalu pkg install python3README.md:15-19

Kedua blok perintah itu identik dalam hal hasil: git untuk mengambil repository dan python3 untuk menjalankan skrip.

Dependensi Python

Berkas requirements.txt hanya berisi dua baris, requests dan phonenumbers, tanpa batasan versi (requirements.txt:1-2). Keduanya diimpor di bagian atas GhostTR.py bersama modul standar seperti json, time, dan os (GhostTR.py:9-15). Karena import berada di level atas modul, kedua paket wajib sudah terpasang sebelum skrip dijalankan.

PaketCara masuk ke kodeDipakai pertama kali di
requestsimport requests (GhostTR.py:9-15)IP_Track memanggil requests.get(f"http://ipwho.is/{ip}") (GhostTR.py:45)
requestsimport requests (GhostTR.py:9-15)TrackLu memanggil requests.get(url) per social media (GhostTR.py:154)
requestsimport requests (GhostTR.py:9-15)showIP memanggil requests.get('https://api.ipify.org/') (GhostTR.py:171)
phonenumbersimport phonenumbers dan from phonenumbers import carrier, geocoder, timezone (GhostTR.py:9-15)phoneGW memanggil phonenumbers.parse(User_phone, default_region) (GhostTR.py:86)

Tidak ada virtualenv, pipx, atau pengunci versi di repository. Pemasangan memakai pip3 global milik interpreter yang sama dengan yang nanti menjalankan skrip.

⚠️ requirements.txt tidak memuat versi paket. Setiap pemasangan mengambil rilis terbaru dari PyPI, sehingga hasil pip3 install -r requirements.txt bisa berbeda antar waktu. Jalankan perintah itu dari akar repository agar berkas rujukannya ditemukan.

Alur dari clone sampai menu tampil

Urutan perintah resmi ada di README, yaitu git clone, cd GhostTrack, pip3 install -r requirements.txt, lalu python3 GhostTR.py (README.md:21-27). Sesudah itu barulah menu opsi muncul.

graph TD
    SYS["sudo apt-get install git / python3<br/>pkg install git / python3"] --> CLONE["git clone https://github.com/HunxByts/GhostTrack.git"]
    CLONE --> CD["cd GhostTrack"]
    CD --> PIP["pip3 install -r requirements.txt"]
    PIP --> DEPS["requests + phonenumbers terpasang"]
    DEPS --> RUN["python3 GhostTR.py"]
    RUN --> MAIN["if __name__ == '__main__': main()"]
    MAIN --> BANNER["option(): clear() dan banner ke stderr"]
    BANNER --> MENU["option_text(): daftar opsi tampil"]
    MENU --> INPUT["int(input('Select Option'))"]
    INPUT --> LOOP["execute_option(opt)"]
    style SYS fill:#f59e0b,color:#000
    style PIP fill:#f59e0b,color:#000
    style DEPS fill:#336791,color:#fff
    style MAIN fill:#8b5cf6,color:#fff
    style MENU fill:#2d7d46,color:#fff
%% fig: Alur pemasangan GhostTrack
%% desc: Perintah sistem dan pip menyiapkan dependensi, lalu GhostTR.py memanggil main() yang menggambar banner dan menampilkan menu opsi.
Fig. 1: Alur pemasangan GhostTrackPerintah sistem dan pip menyiapkan dependensi, lalu GhostTR.py memanggil main() yang menggambar banner dan menampilkan menu opsi.

Skrip tidak punya setup.py atau pyproject.toml; berkas yang dieksekusi langsung adalah GhostTR.py. Entri programnya adalah blok if __name__ == '__main__': yang membungkus main() dengan penanganan KeyboardInterrupt (GhostTR.py:309-311).

Saat main() berjalan, ia memanggil clear() dan option() sebelum meminta masukan (GhostTR.py:296-302). option() sendiri membersihkan layar lewat clear() lalu menulis banner ASCII ke stderr dengan stderr.writelines (GhostTR.py:259-262). Artinya banner dan daftar menu tidak lewat stdout, sehingga urutan tampil di terminal bergantung pada buffer kedua stream tersebut.

Setelah menu tampil

Bila menu sudah terbaca, instalasi selesai dan pekerjaan berikutnya adalah memilih nomor opsi. Validasi nomor, Press enter to continue, dan pengulangan menu dibahas di Validasi Opsi dan Loop Menu, sedangkan asal-usul banner dan dekorator is_option dibahas di Banner dan Dekorator is_option. Penjelasan tiap menu ada di IP Tracker, Show Your IP, Phone Number Tracker, dan Username Tracker.

Bila salah satu paket tidak terpasang, kegagalan terjadi pada baris import di awal berkas, bukan pada saat menu dipilih (GhostTR.py:9-15). Perilaku error dan interupsi setelah program berjalan dijelaskan di Penanganan Error dan Interupsi.