Unmanned Aerial Vehicle (UAV) atau biasa dikenal dengan sebutan pesawat tanpa awak merupakan sebuah teknologi yang mampu memudahkan kegiatan manusia seperti pada bidang pertanian, dan fotografi. UAV dapat dikendalikan secara manual maupun secara otomatis atau biasa dikenal dengan autonomous, dalam pengendalian nya UAV seringkali mengalami keadaan ketidaksetabilan saat menahan posisi pada saat terbang di udara. Mempertahankan posisi pada saat terbang di udara menjadi hal yang sangat penting dalam mengendalikan UAV, dengan mengandalkan data posisi yang dikirimkan dari Global Positioning System (GPS) maka UAV dapat mempertahankan posisi pada saat terbang di udara. Pada penelitian kali ini, penulis berhasil membuat flight controller yang dapat mempertahankan posisi quadcopter pada setpoint tertentu menggunakan mikrokontroler STM32F103C8T6 yang dikombinasikan dengan sensor IMU yang berfungsi untuk stabilize mode, sensor barometer yang berfungsi untuk altitude hold, kemudian terdapat juga sensor kompas yang berfungsi untuk memberikan informasi heading terhadap kutub utara, selatan, barat, atau timur, dan yang terakhir sensor GPS yang berfungsi untuk membaca nilai longitude dan latitude. Penulis menggunakan pengendali PID dalam merancang quadcopter yang dapat mempertahankan posisi dengan bantuan GPS. Dilakukan beberapa percobaan dengan gangguan maupun tidak, hasil yang didapatkan dengan menggunakan Kp=3,0; Kd=7,5 sistem dapat kembali ke titik setpoint dengan gangguan maupun tanpa gangguan dalam waktu 30 detik. Jika ditambahkan Ki, sistem mengalami presentase error 46% jika ditinjau dengan grafik jarak.
Kata Kunci: UAV, Modul GPS, Menahan posisi, Quadcopter.