Tuesday, December 17, 2024

Reset ESP Microcontroller Using Python and esptool

 The ESP series of microcontrollers, such as the ESP32 and ESP8266, are widely used in IoT projects due to their affordability, ease of use, and powerful wireless capabilities. At times, you may need to reset an ESP device to its factory state or reinitialize it for a new project. Python's esptool is a popular utility for interacting with ESP devices, and it can be used to perform various operations, including resetting the device. In this article, we’ll guide you on how to reset your ESP microcontroller using Python and esptool.

What is esptool?

esptool is an open-source Python-based utility developed by Espressif Systems, the creators of the ESP series. It allows users to:

  • Flash firmware onto ESP devices
  • Erase the flash memory
  • Reset the microcontroller
  • Read and write flash data
  • Check device information (chip ID, MAC address, etc.)

You can install esptool via Python's package manager, pip, and use it on various platforms like Windows, macOS, and Linux.

python -m esptool --chip esp32 erase_flash


Prerequisites

Before proceeding, make sure you have the following:

  1. Python Installed: Ensure you have Python 3.6 or later installed on your computer.

    • To check your Python version, run: python --version or python3 --version.
  2. esptool Installed: Install esptool using the following command:

    pip install esptool
    
  3. ESP Device: An ESP32, ESP8266, or any compatible ESP microcontroller.

  4. USB-to-Serial Converter: Connect the ESP device to your computer using a USB cable. Ensure the required drivers for the USB-to-serial chip (e.g., CH340, CP210x) are installed.

  5. Serial Port Information: Note the serial port your ESP device is connected to (e.g., /dev/ttyUSB0 on Linux, COM3 on Windows). You can find this in your device manager or by using a terminal command such as:

    ls /dev/tty*  # For Linux/Mac
    

    or

    mode  # For Windows
    

Step 1: Identify Your ESP Device

Run the following command to verify that your ESP device is detected and connected properly:

esptool.py --port <PORT> chip_id

Replace <PORT> with the serial port of your ESP device (e.g., /dev/ttyUSB0 or COM3). This command will output the chip ID and other device details.


Step 2: Erase Flash Memory (Reset to Factory State)

To reset the ESP device, you need to erase its flash memory. This will wipe all existing firmware and configurations. Run the following command:

esptool.py --port <PORT> erase_flash

Explanation:

  • --port <PORT>: Specifies the serial port connected to your ESP device.
  • erase_flash: A command to clear the entire flash memory of the device.

After running this command, you should see an output confirming that the flash memory has been erased.


Step 3: Flash New Firmware (Optional)

If you plan to load new firmware onto the ESP device after resetting it, you can use the following command:

esptool.py --port <PORT> write_flash -z 0x1000 <FIRMWARE_FILE>

Replace <FIRMWARE_FILE> with the path to your firmware binary file (e.g., esp32-20220101-v1.19.1.bin).

Explanation:

  • write_flash: Command to write firmware to the flash memory.
  • -z: Compress the firmware before flashing.
  • 0x1000: The default memory address for flashing firmware on ESP devices.

Step 4: Reset the ESP Device

Once the flash memory is erased or new firmware is written, you can manually reset the ESP device by pressing the RESET button on the board. Alternatively, you can issue a reset command via esptool:

esptool.py --port <PORT> run

This command will reboot the device and start it with either the default bootloader or the newly flashed firmware.


Example Python Script

You can automate the reset process using a Python script. Here’s an example:

import esptool
import sys

# Replace with your ESP's port
serial_port = "COM3"

try:
    # Connect to the ESP device
    sys.argv = ["esptool.py", "--port", serial_port, "erase_flash"]
    esptool.main()
    print("Flash memory erased successfully!")

    # Reset the device
    sys.argv = ["esptool.py", "--port", serial_port, "run"]
    esptool.main()
    print("Device reset successfully!")

except Exception as e:
    print(f"An error occurred: {e}")

Save this script as reset_esp.py and run it using:

python reset_esp.py

Conclusion

Resetting an ESP microcontroller is an essential process when reinitializing the device for a new project or troubleshooting. Python's esptool makes this task straightforward and efficient. With the steps outlined above, you can erase the flash memory, flash new firmware, and reset your ESP device using simple commands or Python scripts.

Feel free to experiment and customize the process based on your project needs. Happy coding!

Tuesday, July 16, 2024

How to Fix - Brackets aren`t allowed on Youtube description

Mathematics for Informatics and Computer Science tells about How to Fix - Brackets aren`t allowed on Youtube description Just copy and paste above signs in your description ⋖ and ⋗ Hope everything will be fine #fyp #tutorial #tutorialyoutube #MathematicsInformatics #PakAR



Sunday, July 14, 2024

Teknologi di Dunia Perbankan Modern: Pentingnya SMS Banking dan Cara Menonaktifkannya

Teknologi di Dunia Perbankan Modern: Pentingnya SMS Banking dan Cara Menonaktifkannya


Dalam era perbankan modern, teknologi telah menjadi komponen krusial dalam penyediaan layanan kepada nasabah. Salah satu teknologi yang sering digunakan adalah SMS Banking, yang memungkinkan nasabah untuk melakukan berbagai transaksi perbankan melalui pesan teks. Hal ini memberikan kemudahan dan kenyamanan dalam mengelola keuangan mereka.


Namun, ada saatnya kita perlu menonaktifkan layanan SMS Banking, baik karena alasan keamanan atau karena tidak lagi membutuhkannya. Ingin tahu cara mudah menonaktifkan SMS Banking BRI tanpa perlu ke bank? Simak panduan berikut. Cara Menonaktifkan SMS Banking BRI Tanpa ke Bank


- Via BRImo

Untuk menonaktifkan layanan SMS Banking melalui aplikasi BRImo, kamu dapat mengikuti langkah-langkah berikut:

1. Unduh dan buka aplikasi BRImo.

2. Pilih menu ″Semua Rekening″.

3. Pilih rekening yang ingin dinonaktifkan.

4. Pilih ″Status Kartu″.

5. Ubah status kartu sampai mendapatkan respon untuk menonaktifkan.

6. Masukkan PIN BRImo.


Dengan mengikuti langkah-langkah tersebut, kamu dapat menonaktifkan layanan SMS Banking melalui aplikasi BRImo.


Cara ini sangat ampuh karena sumbernya langsung dari kak Sabrina BRI  👌👍💯. Tenang, semua transaksi masih bisa dilakukan dengan BRImo.


- Via ATM

1. Kunjungi ATM BRI terdekat.

2. Masukkan kartu ATM BRI dan ketik PIN.

3. Pilih "Transaksi Lain" dan kemudian "Lainnya".

4. Pilih "Menu Registrasi" dan pilih layanan yang ingin dinonaktifkan, seperti "SMS Banking" atau "Mobile Banking". Lalu, pilih "Hentikan".

5. Masukkan PIN SMS Banking BRI.

6. Tunggu notifikasi penghentian layanan SMS Banking di layar ATM.


- Via Call Center

1. Hubungi Call Center BRI di nomor 14017 atau 1500017.

2. Pilih opsi untuk berbicara dengan Customer Service.

3. Jelaskan ke Customer Service bahwa kamu ingin menonaktifkan layanan SMS Banking BRI.

4. Berikan informasi identitas seperti nama lengkap, nomor rekening, dan nomor kartu ATM.

5. Tunggu proses verifikasi identitas dan penonaktifan layanan oleh Customer Service.


Dengan mengikuti langkah-langkah tersebut, kamu dapat dengan mudah menonaktifkan layanan SMS Banking BRI sesuai kebutuhanmu.


#bankingmadeeasy #PakAR #mobilebanking #smsbanking #sms #potongansms #rupiah #duit #viral #BRI #bank

Sunday, June 9, 2024

Troubleshooting Installation Issues: Android Studio Failed to Install Gradle Distribution

Could not install Gradle distribution from 'https://services.gradle.org/distributions/gradle-8.4-bin.zip'. Reason: java.lang.RuntimeException: Could not create parent directory for lock file C:\Program Files\Android\Android Studio\plugins\gradle\wrapper\dists\gradle-8.4-bin\1w5dpkrfk8irigvoxmyhowfim\gradle-8.4-bin.zip.lck Please ensure Android Studio can write to the specified Gradle wrapper distribution directory. You can also change Gradle home directory in Gradle Settings.

Best way is:

open Settings.

Build, Execution, Deployment > Build Tools > Gradle

set Gradle user home to .gradle path folder ex: C:/Users/NAME/.gradle



It seems like there's a permission issue preventing Android Studio from writing to the specified Gradle wrapper distribution directory. You can try the following steps to resolve this issue:

1. Run Android Studio as Administrator: Right-click on the Android Studio icon and select "Run as administrator". This should give Android Studio the necessary permissions to write to system directories.

2. Change Gradle Home Directory: Open Android Studio, go to File > Settings > Build, Execution, Deployment > Gradle. Then, in the "Gradle settings" section, choose "Use local gradle distribution" and specify a directory where Android Studio has write permissions.

3. Check Directory Permissions: Ensure that the directory `C:\Program Files\Android\Android Studio\plugins\gradle\wrapper\dists\` and its subdirectories have write permissions for your user account.

4. Disable Antivirus or Security Software: Sometimes antivirus or security software can interfere with file operations. Try temporarily disabling any antivirus or security software and see if the issue persists.

5. Check Disk Space: Ensure that there is enough disk space available on your system drive (`C:\` drive) where Android Studio is installed.

6. Reinstall Android Studio: If none of the above steps work, consider reinstalling Android Studio. During the installation process, make sure to grant all necessary permissions.


After trying these steps, attempt to install the Gradle distribution again and see if the issue persists. If it does, there might be a more complex issue at play, and you may need to seek further assistance from the Android Studio support forums or technical support.

Sunday, June 2, 2024

Troubleshooting Guide: Resolving "Your Browser Does Not Support Graphics API WebGL 2" Error

 Your browser does not support graphics API "WebGL 2" which is required for this content.

Troubleshooting Guide: Resolving "Your Browser Does Not Support Graphics API WebGL 2" Error

Introduction

Encountering the error message "Your browser does not support graphics API WebGL 2" can be frustrating, especially when trying to access content that requires WebGL 2 support. WebGL 2 is a crucial graphics API for rendering interactive 2D and 3D graphics within web browsers. However, various factors can lead to this error message appearing. Fortunately, there are several steps you can take to resolve this issue and enjoy the content without interruptions.

1. Verify Browser Compatibility:

Ensure that you are using a modern web browser that supports WebGL 2. Most up-to-date versions of popular browsers like Google Chrome, Mozilla Firefox, Safari, and Microsoft Edge support WebGL 2. If you are using an outdated browser, consider updating it to the latest version to resolve the issue.


2. Check WebGL 2 Support:

Confirm whether your browser supports WebGL 2 by visiting a WebGL 2 compatibility testing website. These websites can detect your browser's capabilities and inform you if WebGL 2 is supported. If your browser lacks WebGL 2 support, consider switching to a compatible browser or updating your current browser to a version that supports it.


3. Enable WebGL 2 in Browser Settings:

Sometimes WebGL 2 support might be disabled in your browser settings. To enable it, follow these steps:

- In Google Chrome, type "chrome://flags" in the address bar, search for "WebGL 2.0" and make sure it's set to "Enabled."

- In Mozilla Firefox, type "about:config" in the address bar, search for "webgl.enable-prototype-webgl2" and make sure it's set to "true."

- In Safari, WebGL 2 should be enabled by default, but you can check by going to Safari Preferences > Advanced > Show Develop menu in menu bar, then check "Enable WebGL."

- In Microsoft Edge, type "edge://flags" in the address bar, search for "WebGL 2.0" and make sure it's set to "Enabled."


4. Update Graphics Drivers:

Outdated or incompatible graphics drivers can prevent WebGL 2 from functioning correctly. Ensure that your graphics drivers are up-to-date by visiting the website of your graphics card manufacturer and downloading the latest drivers for your specific hardware.


5. Clear Browser Cache and Cookies:

Corrupted cache or cookies can sometimes interfere with WebGL 2 functionality. Clearing your browser's cache and cookies can resolve this issue. Go to your browser's settings, find the option to clear browsing data, and select cache and cookies. Then, restart your browser and try accessing the content again.


6. Disable Browser Extensions:

Some browser extensions or add-ons may conflict with WebGL 2 or interfere with its functionality. Temporarily disable all extensions and try reloading the page to see if the error persists. If the error disappears, re-enable the extensions one by one to identify the culprit.


Conclusion:

Encountering the error message "Your browser does not support graphics API WebGL 2" can be a frustrating experience, but with the troubleshooting steps outlined above, you should be able to resolve the issue and enjoy WebGL 2 content seamlessly. By ensuring browser compatibility, enabling WebGL 2 support, updating graphics drivers, clearing browser cache and cookies, and disabling conflicting extensions, you can overcome this obstacle and make the most of the rich, interactive web experiences powered by WebGL 2.


Wednesday, May 29, 2024

Unlocking the Mystery: Resizing Android Dimensions with HandBrake

How to Resize Android Dimensions in HandBrake

Many people inquire about the difficulty of resizing from 1920x1080 to 1080x1920. Here's how to resize Android dimensions in HandBrake. The following images are provided so that friends can directly understand what needs to be done.

The quest to resize from 1920x1080 to 1080x1920 has stumped many. Enter the realm of resizing Android dimensions with HandBrake. Picture this: you're navigating through a labyrinth of settings, unsure of which path leads to your desired outcome. Fear not, for here we shed light on this enigma, providing a step-by-step guide accompanied by illustrative images.


HandBrake


Imagine the frustration of trying to fit a square peg into a round hole; that's the struggle many face when attempting to adapt video dimensions for mobile viewing. But fear not, fellow travelers on the digital highway, for we have uncovered the secret to making your videos seamlessly compatible with Android devices.

By following these meticulously crafted instructions, you'll transform the daunting task of resizing dimensions into a breeze. Gone are the days of confusion and frustration; with HandBrake as your guide, you'll navigate the twists and turns of video editing with ease.

So, if you've ever found yourself scratching your head over how to make your videos mobile-friendly, fret no more. Embrace this newfound knowledge and embark on a journey towards seamless video adaptation. After all, in a world where mobile devices reign supreme, mastering the art of resizing Android dimensions is a skill worth acquiring.

So, resizing dimensions to make it more mobile-friendly is now easier than ever. If you've struggled with this before, worry no more!

Wednesday, May 15, 2024

Cara terbaik belajar Machine learning tentang seleksi fitur

Belajar tentang seleksi fitur dalam machine learning bisa menjadi langkah penting untuk meningkatkan kinerja model. Berikut adalah beberapa cara terbaik untuk mempelajarinya:


1. Dasar-dasar Machine Learning:

   - Sebelum melangkah ke seleksi fitur, pastikan Anda memiliki pemahaman dasar tentang machine learning. Kursus online dari Coursera, edX, atau Udacity bisa sangat membantu.


2. Buku dan Materi Bacaan:

   - Baca buku seperti "Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow" oleh Aurélien Géron. Buku ini memberikan penjelasan yang baik tentang teknik-teknik seleksi fitur.


3. Online Tutorials dan Blog:

   - Banyak tutorial dan blog yang dapat membantu. Situs seperti Towards Data Science di Medium atau blog dari situs-situs seperti Analytics Vidhya sering kali memiliki artikel yang bermanfaat tentang seleksi fitur.


4. Kursus Online:

   - Lakukan kursus khusus mengenai seleksi fitur di platform seperti Coursera, Udacity, atau DataCamp. Kursus ini sering mencakup teori dan praktik.


5. Pemahaman Metode Seleksi Fitur:

   - Univariate Selection: Gunakan teknik statistik untuk memilih fitur yang memiliki hubungan kuat dengan variabel target.

   - Recursive Feature Elimination (RFE): Metode ini bekerja dengan berulang kali membangun model dan mempertahankan fitur paling penting.

   - Tree-based Methods: Model seperti Random Forest atau Gradient Boosting sering kali memiliki fitur penting yang bisa digunakan untuk seleksi.

   - L1 Regularization (Lasso): Lasso dapat mengurangi koefisien fitur yang tidak penting ke nol, sehingga secara otomatis melakukan seleksi fitur.


6. Latihan dan Implementasi:

   - Praktekkan teknik-teknik ini pada dataset nyata. Platform seperti Kaggle menyediakan banyak dataset dan kompetisi yang bisa menjadi media latihan yang baik.


7. Komunitas dan Diskusi:

   - Bergabunglah dengan komunitas online seperti Stack Overflow, Reddit, atau forum-forum terkait machine learning. Tanya dan diskusikan masalah atau teori dengan anggota lain untuk memperdalam pemahaman Anda.


8. Dokumentasi Library:

   - Baca dokumentasi dari library populer seperti Scikit-learn. Dokumentasi ini sering kali mencakup penjelasan dan contoh implementasi fitur seleksi.

Sumber: https://www.micoope.com.gt/?o=svm-feature-selection-and-kernels-by-pier-paolo-ippolito-nn-zm4W9bSV


Pembelajaran yang baik biasanya kombinasi dari teori dan praktek. Jangan ragu untuk mencoba berbagai metode dan melihat mana yang paling sesuai dengan dataset dan tujuan Anda.

Android Emulator untuk Simulasi Android di Laptop

Ada beberapa emulator Android yang populer untuk menjalankan aplikasi Android di laptop. Berikut beberapa di antaranya:

- Bluestacks: Salah satu emulator Android yang paling populer dan mudah digunakan. Bluestacks mendukung berbagai aplikasi dan game Android.

- Nox Player: Emulator Android lain yang bagus dengan berbagai fitur seperti keyboard dan kontroler gamepad yang dapat disesuaikan.

- Genymotion: Lebih fokus pada pengembangan aplikasi Android, Genymotion memberikan berbagai konfigurasi perangkat dan versi Android yang berbeda untuk pengujian aplikasi.

- Android Studio's AVD (Android Virtual Device) Manager: Jika Anda seorang pengembang, Anda mungkin ingin menggunakan emulator bawaan dari Android Studio yang memberikan kontrol yang lebih besar atas konfigurasi emulator.

- LDPlayer: Emulator Android yang fokus pada gaming, dengan dukungan untuk keyboard dan mouse, serta performa yang optimal untuk game-game berat.

Sebelum mengunduh dan menginstal emulator, pastikan spesifikasi laptop Anda memadai, terutama jika Anda berencana untuk menjalankan aplikasi atau game yang lebih berat secara grafis. Selain itu, pastikan emulator tersebut kompatibel dengan sistem operasi dan perangkat keras Anda.

Untuk menjalankan melalui AVD dengan cmd (command line) bisa lihat gambar berikut:


Microsoft Windows [Version 10.0.22621.3296]
(c) Microsoft Corporation. All rights reserved.

C:\Users\dell>F:

F:\>cd F:\JAVA\sdk\emulator

F:\JAVA\sdk\emulator>emulator -list-avds
INFO    | Storing crashdata in: C:\Users\dell\AppData\Local\Temp\\AndroidEmulator\emu-crash-34.2.13.db, detection is enabled for process: 30548
Pixel_3a_API_34_extension_level_7_x86_64

F:\JAVA\sdk\emulator>emulator -avd Pixel_3a_API_34_extension_level_7_x86_64


Tuesday, May 14, 2024

Belajar mengetahui metode evaluasi dalam machine learning

Evaluasi dalam machine learning sangat penting untuk memahami seberapa baik model yang kita buat bekerja. Berikut adalah beberapa metode evaluasi yang umum digunakan:

1. Train-Test Split
Ini adalah metode dasar di mana data dibagi menjadi dua bagian: satu untuk melatih model (train) dan satu lagi untuk menguji model (test). Biasanya, pembagian dilakukan dengan perbandingan 70-30 atau 80-20.

2. K-Fold Cross-Validation
Pada metode ini, data dibagi menjadi k subset (folds). Model dilatih k kali, setiap kali menggunakan satu fold sebagai data uji dan sisa k-1 sebagai data latih. Hasil akhir adalah rata-rata dari semua iterasi ini, memberikan ukuran evaluasi yang lebih stabil.

3. Leave-One-Out Cross-Validation (LOOCV)
LOOCV adalah kasus khusus dari k-fold cross-validation di mana k sama dengan jumlah sampel dalam dataset. Setiap sampel digunakan satu kali sebagai data uji sementara sampel lainnya digunakan untuk melatih model. Ini sangat memakan waktu tetapi memberikan evaluasi yang sangat komprehensif.

4. Stratified K-Fold Cross-Validation
Mirip dengan k-fold, tetapi memastikan bahwa distribusi kelas di setiap fold serupa dengan distribusi kelas di dataset asli. Ini sangat berguna untuk data yang tidak seimbang.

Metode Evaluasi Model

1. Confusion Matrix
Digunakan untuk binari dan klasifikasi multi-kelas, matriks ini menunjukkan jumlah true positives (TP), true negatives (TN), false positives (FP), dan false negatives (FN). Dari sini, kita bisa menghitung metrik-metrik berikut:

- Accuracy: `(TP + TN) / (TP + TN + FP + FN)`
- Precision: `TP / (TP + FP)`
- Recall (Sensitivity): `TP / (TP + FN)`
- F1-Score: Harmonik rata-rata dari precision dan recall.


2. ROC Curve dan AUC
ROC (Receiver Operating Characteristic) curve digunakan untuk memahami trade-off antara true positive rate dan false positive rate pada berbagai threshold. AUC (Area Under Curve) memberikan ukuran umum dari performa model, di mana 1 adalah performa sempurna dan 0.5 adalah performa acak.

3. Mean Absolute Error (MAE)
Digunakan untuk regresi, MAE mengukur rata-rata absolut dari kesalahan antara prediksi dan nilai sebenarnya.

4. Mean Squared Error (MSE)
Mirip dengan MAE tetapi mengkuadratkan kesalahan sebelum menghitung rata-rata. Ini memberikan penalti yang lebih besar untuk kesalahan yang lebih besar.

5. R-squared (R²)
Mengukur seberapa baik model menjelaskan variabilitas data. Nilai 1 menunjukkan model sempurna, sementara nilai 0 menunjukkan model yang tidak lebih baik dari rata-rata sederhana.

Memahami metode ini membantu kita memilih model terbaik dan memahami kekurangan serta kelebihan dari setiap model dalam konteks data yang kita miliki.

Tuesday, April 9, 2024

ChatGPT sudah ada, Bagaimana menurut anda?

Sumber: https://upload.wikimedia.org/wikipedia/commons/thumb/0/04/ChatGPT_logo.svg/105px-ChatGPT_logo.svg.png


Belajar ChatGPT dapat dilakukan melalui beberapa langkah berikut:


1. **Pemahaman Dasar tentang ChatGPT:** ChatGPT adalah model bahasa generatif pra-latih yang dikembangkan oleh OpenAI. Pahami dasar-dasarnya seperti arsitektur GPT (Generative Pre-trained Transformer), cara kerjanya, dan penerapannya.


2. **Materi Pembelajaran Resmi:** Kunjungi website resmi OpenAI untuk mendapatkan materi pembelajaran dan dokumentasi resmi tentang ChatGPT. OpenAI menyediakan banyak sumber informasi, termasuk arsip riset, blog, dan panduan.


3. **Kursus dan Tutorial Online:** Terdapat banyak kursus online gratis atau berbayar yang mengajarkan tentang penggunaan dan penerapan ChatGPT. Platform seperti Coursera, Udemy, edX, dan lainnya menyediakan kursus terkait AI dan model bahasa.


4. **Praktek Coding:** Untuk mempraktekkan pengetahuan Anda, mulailah dengan proyek sederhana. Anda bisa menggunakan API OpenAI untuk mengintegrasikan ChatGPT ke dalam aplikasi. Pelajari dokumentasi API OpenAI untuk memahami cara menggunakannya.


5. **Bergabung dengan Komunitas:** Berpartisipasi dalam forum atau grup yang membahas AI dan ChatGPT, seperti di Reddit, LinkedIn, atau Discord. Komunitas ini bisa menjadi sumber berharga untuk belajar dari pengalaman orang lain dan juga membagikan pengetahuan Anda.


6. **Eksperimen dan Proyek:** Coba gunakan ChatGPT untuk berbagai eksperimen, seperti pembuatan chatbot, analisis sentimen, atau penghasil konten. Pengalaman langsung akan sangat membantu dalam memahami kekuatan dan keterbatasan teknologi ini.


7. **Tetap Terinformasi:** Dunia AI berkembang sangat cepat. Memiliki kebiasaan membaca jurnal terbaru, artikel, atau mengikuti para ahli di media sosial dapat membantu Anda tetap terinformasi tentang perkembangan terbaru.


Belajar ChatGPT bukan hanya tentang menguasai teknisnya tapi juga mengerti etika dan dampak sosial dari penerapannya. Pastikan untuk mempertimbangkan aspek-aspek ini saat Anda mengembangkan kemampuan Anda dalam menggunakan ChatGPT.

Saturday, February 17, 2024

Belajar Pemrograman Games dengan Unity

Gunakan Unity Editor untuk membuat game, aplikasi, dan pengalaman 2D dan 3D. Unduh Editor di unity3d.com. Panduan Pengguna Unity membantu Anda mempelajari cara menggunakan Unity Editor dan layanan terkaitnya. Anda dapat membacanya dari awal sampai akhir, atau menggunakannya sebagai referensi. Jika ini pertama kalinya Anda menggunakan Unity, lihat dokumentasi pengantar tentang Bekerja dengan Unity, dan lihat Tutorial Unity.




Ada 3 ciri utama sebuah listing program yang terstruktur (OOP) yaitu "Encapsulation", "Inheritance" dan "Polymorphism".

Di Unity ada beberapa Method utama yang sering digunakan dalam pembuatan game, berikut adalah method-method C# unity.

- Void Awake adalah method yang akan dieksekusi terlebih dahulu sebelum Method Void Start(). contoh:
void Awake(){
    anim = GetComponent<Animator>();
    player = GameObject.Find("Player");
    partikel = enemy.GetComponent<ParticleSystem>();
    darahUtama = GetComponent<DarahUtama>();
}
- Void Start() hanya akan mengeksekusi listing program satu kali dan di awal saat program dijalankan. contoh:
void Start(){
    umur = 20;
    darahPemain = DarahUtama;
    Phi = 3.14159265;
}
- Void Update() akan mengeksekusi program per frame artinya akan terus mengeksekusi listing program selama program berjalan. Void Update() digunakan untuk mengeksekusi perintah yang selalu berubah sesuai kondisi. contoh:
void Update(){
    time += Time.DeltaTime;
    Debug.Log("void update");
    if(darah <= 0) { Die();}
}
- Void FixedUpdate Memiliki fungsi yang sama dengan void Update(), perbedaannya void Update() lebih fokus ke perubahan grafis game dan void FixedUpdate() lebih fokus ke perubahan fisik pada objek. contoh: 
void FixedUpdate(){
    rigidbody.AddForce(Vector3.up);
}
- Void LateUpdate akan terlambat dieksekusi ketika program dijalankan, contoh yang paling sering digunakan adalah ketika camera mengikuti gerakan pemain. contoh: 
void LateUpdate(){
    Vector3 targetCamPos = target.position + offset;
    transform.position = Vector3.Lerp (transform.position, targetCamPos, smoothing * Time.deltaTime);
}
- Void OnGUI biasa digunakan pada Unity versi 4.5 kebawah, method ini digunakan untuk mengeksekusi perintah atau komponen GUI. contoh:
void OnGUI(){
    GUI.Button(new Rect(10,10,100,20), "Tombol");
}

Dengan skrip yang berasal dari kelas MonoBehaviour bawaan Unity, Kita dapat membuat komponen kustom sendiri untuk mengontrol perilaku GameObjects. Sedangkan dengan skrip yang berasal dari ScriptableObject Kita dapat menyimpan data dalam jumlah besar secara efisien di aplikasi.

Tidak seperti kebanyakan aset lainnya, skrip biasanya dibuat langsung di dalam Unity. Untuk membuat skrip baru yaitu:
- buka Assets > Create > Scripting dan pilih jenis skrip yang ingin Anda buat. Selain itu bisa dengan menggunakan klik tanda plus di toolbar jendela Proyek, lalu buka Scripting dan pilih jenis skrip yang ingin Anda buat.
- Selanjutnya Unity akan membuat skrip baru di folder mana pun yang kita pilih di panel Proyek. Itu juga memilih nama file skrip untuk diedit, dan meminta kita untuk mengubah nama.
- Nama file yang dimasukkan saat pembuatan skrip juga akan digunakan untuk nama kelas yang ditentukan di dalamnya. Oleh karena itu, praktik yang baik jika nama file skrip cocok dengan nama kelas yang ditentukan di dalamnya.

Untuk skrip yang berasal dari tipe Unity bawaan MonoBehaviour dan ScriptableObject, Unity masih dapat menyelesaikan tipe kelas yang ditentukan dalam skrip kita meskipun nama file tidak cocok, namun ada beberapa batasan:
- Jika beberapa kelas ditentukan dalam skrip, Unity memilih kelas dengan nama yang sama dengan file.
- Jika kita menggunakan kata kunci parsial C# untuk mendefinisikan satu kelas turunan MonoBehaviour di beberapa file, hanya file dengan nama yang sama dengan kelas parsial yang dapat digunakan sebagai Komponen.

Catatan: Jika nama kelas tidak dapat dicocokkan secara jelas dengan file tertentu, Unity akan menampilkan peringatan.