GitHub Copilot: Apa itu, cara kerjanya, dan cara menggunakannya
Diterbitkan: 2024-04-25AI generatif mengubah wajah kolaborasi kreatif, dan asisten coding adalah beberapa aplikasi baru yang paling menarik. Asisten ini dapat memahami kode Anda, menyarankan penyelesaian, menghasilkan seluruh fungsi, dan mengusulkan pendekatan alternatif. Berikut ikhtisar salah satu asisten pengkodean AI terkemuka, GitHub Copilot.
Daftar isi
- Apa itu Kopilot GitHub?
- Cara kerja Kopilot GitHub
- Siapa yang membuat Kopilot GitHub?
- Apakah GitHub Copilot gratis?
- Cara Menggunakan Kopilot GitHub
- Kiat untuk memaksimalkan efisiensi
- Kelebihan menggunakan GitHub Copilot
- Kontra menggunakan GitHub Copilot
- Kesimpulan
Apa itu Kopilot GitHub?
GitHub Copilot adalah asisten pengkodean AI, juga dikenal sebagai pemrogram pasangan AI. Ada dua cara utama untuk menggunakannya: Anda dapat mulai menulis kode dan meminta GitHub Copilot menyelesaikannya, atau Anda dapat menjelaskan apa yang Anda ingin kode lakukan menggunakan bahasa alami, dan AI akan menghasilkan cuplikan kode untuk Anda.
GitHub Copilot dapat menulis kode dalam semua bahasa yang muncul di repositori publik, termasuk JavaScript, TypeScript, Python, dan Ruby.
Anda dapat menggunakan GitHub Copilot di lingkungan pengembangan terintegrasi (IDE) dan di baris perintah. Jika Anda memiliki akun tingkat perusahaan, Anda juga dapat mengaksesnya di GitHub.com.
Cara kerja Kopilot GitHub
Alat pelengkapan otomatis kode telah ada selama beberapa waktu. GitHub Copilot melangkah lebih jauh karena dapat menulis seluruh baris dan fungsi serta menjawab pertanyaan Anda. Berikut ikhtisar mekanisme di balik platform ini.
Memahami AI generatif dan model bahasa besar (LLM)
GitHub Copilot dibangun di atas model bahasa besar (LLM). LLM dapat menganalisis dan memproses informasi dalam jumlah besar dan menghasilkan konten baru, seperti kode, teks, atau gambar.
Pada tahap awal Copilot, GitHub bereksperimen dengan GPT-3, sebuah LLM yang dibuat oleh OpenAI. Mari kita lihat cara kerja model GPT pada tingkat tinggi.
Pertama, pengembang memasukkan teks dalam jumlah besar ke dalam model. Teksnya bisa berupa halaman web, buku, dialog film, atau forum diskusi. Dalam kasus GitHub Copilot, model-model tersebut diberi miliaran baris kode sumber terbuka.
Model GPT memproses data tersebut untuk mengidentifikasi pola antara kata dan struktur bahasa. Mereka menggunakan konteks untuk memahami makna konten, serupa dengan cara kita menggunakan petunjuk konteks untuk mencari tahu makna sebuah kata baru.
Setelah model mengembangkan peta petunjuk konteks dan pola bahasa, model dapat membuat prediksi yang tepat tentang apa yang akan terjadi selanjutnya secara berurutan. Jadi, saat Anda mulai mengetik kode di GitHub Copilot, bagian kode Anda selanjutnya akan diprediksi berdasarkan data yang dipelajari. Saat Anda mengajukan pertanyaan atau meminta kode baru dari awal, responsnya seperti tebakan tingkat tinggi. Ini memprediksi setiap kata atau cuplikan kode satu per satu. Sebagai contoh dasar, ketika GitHub Copilot melihat bahwa pengembang menulis 'if __name__', maka ia dapat secara akurat memprediksi sisa baris '__main__'.
Setelah pelatihan awal, model disesuaikan dengan masukan manusia. Manusia meninjau tanggapannya dan menilai keakuratan, relevansi, dan faktor etika (seperti bias dan menyinggung). Seiring waktu, model tersebut mempelajari respons mana yang disukai manusia.
Evolusi model di balik GitHub Copilot
Pada tahun 2021, GitHub dan OpenAI merilis Codex, cabang GPT-3 khusus pengkodean. GitHub menyempurnakan dan melatih model ini untuk memberikan respons yang lebih relevan dan diinginkan. Pada tahun 2023, GitHub mengumumkan bahwa mereka menggunakan model Copilot yang lebih cerdas dan efisien, meskipun tidak memberikan detail tentang nama atau pelatihannya.
Antarmuka utama untuk menggunakan GitHub Copilot
GitHub Copilot menawarkan dua antarmuka utama untuk semua pengguna: Copilot Chat dan Copilot di CLI.
Copilot Chat berfungsi di dalam IDE Anda. Saat ini mendukung Visual Studio Code, Visual Studio, dan rangkaian IDE JetBrains. Anda dapat menyorot cuplikan kode dan menulis perintah tentangnya tanpa meninggalkan editor. Anda juga dapat menulis awal suatu fungsi atau baris kode, dan Copilot akan menyarankan sisanya untuk Anda. Copilot Chat juga dapat menjelaskan cuplikan kode, merekomendasikan perbaikan bug, menjelaskan konsep pemrograman, dan menulis kasus pengujian.
Copilot di CLI menyediakan antarmuka obrolan di dalam terminal. Plugin ini memungkinkan Anda untuk mengajukan pertanyaan atau menjalankan perintah tentang baris perintah, seperti memberikan penjelasan atau saran.
Siapa yang membuat Kopilot GitHub?
GitHub Copilot merupakan hasil kolaborasi antara GitHub, Microsoft, dan OpenAI (perusahaan pembuat ChatGPT dan DALL-E).
GitHub Copilot awalnya dirilis pada Oktober 2021 sebagai pratinjau teknis terbatas. Pada bulan Juni 2022, ini tersedia secara luas untuk semua pengembang melalui langganan.
Apakah GitHub Copilot gratis untuk digunakan?
GitHub Copilot ditawarkan dalam tiga tingkatan berbayar:
- Copilot Individual untuk pengguna pribadi
- Bisnis Kopilot untuk organisasi
- Copilot Enterprise untuk perusahaan yang menggunakan GitHub Enterprise Cloud, yang memungkinkan Anda memiliki banyak organisasi dalam satu akun
Semua langganan diberi harga per pengguna per bulan, kecuali Copilot Individual, yang juga menawarkan langganan tahunan. Semua tingkatan menawarkan Copilot Chat, GitHub CLI, dan kemampuan untuk menyambungkannya ke editor kode Anda. Beberapa perbedaan utama antara tingkat personal dan bisnis adalah akses terhadap log audit dan peningkatan kontrol kebijakan.
Jika Anda ingin mencoba GitHub Copilot sebelum membayar, ada uji coba satu kali selama 30 hari untuk semua pengguna.
Guru, siswa, dan pengelola proyek sumber terbuka populer dapat menggunakan GitHub Copilot secara gratis.
Tips dan trik menggunakan GitHub Copilot
GitHub Copilot sangat mengesankan dalam memahami bahasa alami dan mengantisipasi kebutuhan Anda. Namun Anda tetap perlu mengetahui beberapa tip dan trik untuk secara konsisten mendapatkan hasil yang relevan dan berkualitas tinggi. Mari kita tinjau beberapa praktik terbaik yang meningkatkan peluang Anda untuk mendapatkan respons yang Anda inginkan.
Tulis petunjuk rinci
Untuk menghasilkan respons yang efektif, GitHub Copilot memerlukan perintah yang mendetail dan tepat. Untuk melakukan ini, Anda perlu memasukkan informasi yang benar dalam petunjuk Anda. Misalnya, jika Anda ingin menulis kode untuk menggambar rumah, Anda perlu merinci warna rumah, jumlah lantai, dan sudut pandangnya.
Berikan contoh
Jika Anda memberikan contoh kode ke GitHub Copilot, kemungkinan besar Anda akan mendapatkan hasil yang diinginkan. Ini adalah cara sederhana untuk menambahkan konteks ke perintah Anda tanpa harus menjelaskan apa yang Anda bayangkan. Dengan adanya contoh, ruang untuk salah tafsir akan berkurang.
Pertahankan konvensi penamaan yang konsisten
Gunakan nama spesifik yang terkait dengan tujuan setiap variabel atau fungsi untuk membantu GitHub Copilot memahami konteksnya. Praktik ini juga membantu menjaga keluaran GitHub Copilot tetap teratur karena mereplikasi konvensi penamaan yang Anda gunakan dalam kode Anda.
Bagi semuanya menjadi langkah-langkah sederhana
GitHub Copilot berfungsi paling baik saat menulis cuplikan kode yang lebih pendek. Bagi tugas Anda menjadi langkah-langkah sederhana untuk mendapatkan hasil terbaik. Misalnya, jika Anda ingin menulis suatu fungsi, jelaskan dengan jelas setiap langkah yang perlu diikuti GitHub. Izinkan untuk menghasilkan cuplikan kode untuk setiap langkah, satu per satu.
Tinjau respons GitHub Copilot
Meskipun GitHub Copilot mahir dalam menghasilkan kode yang dapat digunakan, namun tetap memerlukan pengawasan manusia. Periksa kembali setiap respons untuk memastikannya akurat, memenuhi praktik terbaik pengkodean, mematuhi kebijakan Anda, dan tidak mengandung kerentanan keamanan.
Buka tab yang relevan
Dengan tetap membuka beberapa tab lain yang terkait dengan proyek Anda, Anda dapat bekerja lebih efisien dan meningkatkan peluang mendapatkan respons yang lebih baik. GitHub Copilot menggunakan teknik yang disebut tab tetangga untuk mendapatkan lebih banyak konteks pada permintaan Anda. Ini memindai tab lain yang terbuka di IDE Anda untuk menemukan potongan kode yang cocok dan memasukkannya ke dalam tanggapannya.
Cara memaksimalkan efisiensi pengembangan dengan GitHub Copilot
GitHub Copilot dapat menyederhanakan proses Anda dalam banyak cara, mulai dari membuat kode baru hingga menulis dokumentasi. Berikut beberapa aplikasi terpopuler untuk AI pair programmer ini.
Hasilkan kode baru
GitHub Copilot dapat membuat kode dari awal. Anda dapat membuat fungsi, kelas, dan struktur kode baru lainnya dengan menulis penjelasan rinci tentang tujuan Anda. Menulis dari awal dengan GitHub Copilot adalah cara terbaik untuk menyusun boilerplate dan kode dasar.
Saran kode dan pelengkapan otomatis
Saat Anda menulis kode, GitHub Copilot dapat memberikan saran berdasarkan konteks file yang Anda edit. Terkadang, ini memberikan banyak saran, yang dapat Anda pilih untuk menemukan yang Anda sukai. Anda juga dapat menggabungkan kode dari lebih dari satu saran. Jika Anda tidak menyukai kumpulan rekomendasi pertama yang dihasilkan GitHub Copilot, Anda dapat meminta lebih banyak.
Proses debug dan koreksi kesalahan yang efisien
Anda dapat meminta GitHub Copilot untuk merekomendasikan strategi dan solusi untuk memperbaiki kesalahan kode. Di IDE Anda, jelaskan kesalahan di Copilot Chat dan minta solusinya. Jika Anda menggunakan CLI, Anda dapat menggunakan /fix untuk menghasilkan potensi perbaikan. GitHub Copilot mempertimbangkan kode kesalahan, kode di sekitarnya, dan sintaksis kode untuk menghasilkan solusi yang mungkin.
Selain itu, jika perintah tidak berjalan di terminal perintah, GitHub Copilot akan menyarankan kemungkinan alasan mengapa kode gagal dan menawarkan solusi potensial.
Mengotomatiskan penulisan kasus uji
Saat Anda ingin memverifikasi bahwa kode Anda akan berfungsi sesuai rencana, GitHub Copilot dapat membantu Anda menulis kasus pengujian unit. Anda dapat memilih blok kode dan meminta GitHub Copilot untuk membuat pengujian unit atau menjelaskan apa yang ingin Anda uji.
Diskusi kode interaktif
Anda dapat berinteraksi dengan GitHub Copilot dengan menggunakan bahasa alami untuk mengajukan pertanyaan dan mendapatkan panduan tentang tantangan coding. Daripada mencari di forum atau menggali dokumentasi, Anda bisa mendapatkan jawaban atas pertanyaan pengkodean langsung di dalam editor Anda.
Coba tanyakan pada GitHub Copilot hal berikut:
- Cara menyiapkan proyek baru dalam bahasa pengkodean tertentu
- Pro dan kontra dari berbagai arsitektur perangkat lunak
- Jelaskan apa yang dilakukan cuplikan kode
- Berikan aturan sintaksis yang terkait dengan bahasa tertentu
- Bicarakan masalah pengkodean, seperti mengapa kode tidak berfungsi seperti yang diharapkan
Menyederhanakan dokumentasi
GitHub Copilot dapat menulis dokumentasi untuk kode Anda. Mulailah menulis dokumentasi Anda, dan itu akan melengkapinya secara otomatis untuk Anda. Sama seperti pelengkapan otomatis pengkodean, Anda dapat menelusuri saran untuk menemukan saran yang sesuai dengan kode Anda. Kemudian, Anda dapat memilih teks yang benar dan melakukan pengeditan agar dokumentasinya lengkap dan akurat. Itu juga dapat menyarankan subbagian seperti Pengujian, Penggunaan, dan Pedoman untuk Kontributor.
Optimalisasi kode dan pemfaktoran ulang
Anda dapat menggunakan GitHub Copilot untuk membuat kode Anda lebih efisien, mudah dibaca, atau dipelihara. Sorot satu blok kode dan minta untuk mengoptimalkannya. Dengan kemampuan ini, GitHub Copilot dapat membantu Anda menyederhanakan hal-hal seperti mengatur ulang blok kode, mengganti nama variabel, dan membuat kode lebih ringkas.
Kelebihan menggunakan GitHub Copilot
Menggunakan GitHub Copilot membantu Anda bekerja lebih efisien dan dapat menjadi bagian dari perangkat pendidikan coding Anda. Anda juga bisa mendapatkan manfaat dari berbagi wawasan dengan komunitas besar GitHub.
Mari kita lihat lebih dekat kelebihan menggunakan GitHub Copilot.
Efisiensi pengkodean yang efisien
AI generatif memberi pengembang peningkatan produktivitas yang besar. Menurut sebuah penelitian, pemrogram pasangan AI dapat mengurangi waktu pembuatan kode sebesar 35-45%. GitHub Copilot mempercepat proses pengkodean dengan mengotomatiskan tugas manual dan berulang. Hal ini memungkinkan Anda menghabiskan lebih banyak waktu untuk aktivitas pengkodean yang lebih kompleks.
Berikut beberapa cara yang dapat menghemat waktu Anda:
- Mengurangi kebutuhan mengetik cuplikan kode berulang atau mencari sintaksis tertentu
- Mengotomatiskan dokumentasi
- Menawarkan jawaban atas pertanyaan pengkodean tanpa mengharuskan Anda meninggalkan editor
- Menulis kode boilerplate untuk tugas umum seperti menyiapkan fungsi, kelas, atau penanganan kesalahan
- Menghemat waktu yang dihabiskan untuk mencari kode yang ketinggalan jaman dan tidak efisien serta menemukan cara untuk memperbaikinya
- Memberikan saran kode untuk membantu Anda memulai proyek Anda
Sumber daya pendidikan untuk pembelajaran berkelanjutan
GitHub Copilot dapat membantu programmer pemula dan berpengalaman meningkatkan keterampilan mereka. Jika digunakan bersama sumber daya pendidikan coding lainnya, ini dapat membantu Anda mempelajari dasar-dasarnya.
Begini caranya:
- Teliti konsep dan terminologi pengkodean
- Dapatkan saran tentang cara meningkatkan kode
- Mendorong penggunaan praktik terbaik pengkodean
- Dapatkan paparan terhadap sintaksis dan struktur file yang benar, yang membantu Anda mengenali pola mendasar di balik praktik tersebut
- Jelajahi berbagai pendekatan untuk memecahkan masalah pengkodean
- Ajukan pertanyaan tentang cuplikan kode untuk memperdalam pemahaman Anda tentang maksud atau alasan cuplikan tersebut ada
Pertunangan Komunitas
Eksperimen dan eksplorasi sangat penting agar berhasil menggunakan platform AI generatif. Karena GitHub memiliki komunitas global yang besar dan aktif, kemungkinan besar Anda akan menemukan sesama pengguna Copilot yang memiliki kesamaan dengan Anda. Komunitas memungkinkan pengguna untuk belajar satu sama lain, berbagi tips, dan mendiskusikan pembaruan terkini. Anda akan menemukan informasi berguna dan relevan di forum, media sosial, podcast, dan YouTube.
Memiliki basis pengguna yang besar juga berkontribusi terhadap peningkatan GitHub Copilot. Pengguna memberikan masukan, membantu melatih model, membuat kasus penggunaan inovatif, dan menemukan cara baru untuk menggabungkan GitHub Copilot dengan plugin dan ekstensi lain.
Kontra menggunakan GitHub Copilot
Seperti setiap teknologi, GitHub Copilot memiliki potensi kelemahan. Ini mungkin tidak akurat atau menghasilkan hasil yang tidak konsisten berdasarkan bahasa pemrograman Anda. Ada juga kekhawatiran etis mengenai pelatihan dan tanggapannya.
Ingatlah potensi kendala ini saat Anda menggunakan GitHub Copilot.
Tanggapan yang tidak akurat atau bermasalah
Karena GitHub Copilot dilatih tentang kode yang tersedia untuk umum, hal ini mungkin mencerminkan beberapa kelemahan dalam basis pengetahuannya. Misalnya, responsnya mungkin berisi bug, merujuk pada API yang sudah ketinggalan zaman, atau mengandung kerentanan keamanan. Ini juga dapat membocorkan kode pribadi (seperti kunci API).
Selain itu, AI generatif selalu berisiko menghasilkan tanggapan yang menyinggung atau bias. Meskipun GitHub telah menerapkan perlindungan terhadap permintaan dan respons yang menyinggung, namun hal tersebut tidak selalu aman.
Pada akhirnya, Anda bertanggung jawab untuk memeriksa keakuratan, efektivitas, dan keamanan kode. GitHub menyediakan beberapa fitur untuk membantu Anda mengevaluasi kode, seperti GitHub Actions, Dependabot, CodeQL, dan pemindaian kode.
Kemahiran bahasa pemrograman
GitHub Copilot secara teknis mahir dalam semua bahasa pemrograman yang tersedia untuk umum. Namun, kualitas tanggapannya lebih baik bagi beberapa orang dibandingkan yang lain.
Berikut adalah bahasa yang paling dikuasainya, menurut Github:
- ular piton
- JavaScript
- skrip ketikan
- Rubi
- Pergi
- C#
- C++
Bahasa-bahasa ini cenderung menjadi yang paling populer di repositori publik, sehingga GitHub Copilot memiliki kinerja terbaik dengan bahasa-bahasa tersebut. Jika Anda menggunakan bahasa yang tidak umum dibahas di forum publik, kemungkinan besar Anda akan mendapatkan ketidakakuratan dan tanggapan yang lebih sedikit.
Kekhawatiran etis
Seperti semua AI, ada kekhawatiran etis tentang penggunaan kode publik oleh GitHub Copilot dan kemampuan untuk memberikan hak cipta pada keluarannya. Pengembang GitHub Copilot mengatakan bahwa penggunaan data publik untuk pelatihan berada di bawah perlindungan penggunaan wajar.
Para pencela mengatakan bahwa data pelatihan GitHub sebenarnya dilindungi oleh lisensi copyleft atau perangkat lunak bebas dan sumber terbuka (FOSS), yang mengharuskan Anda mengikuti pedoman khusus untuk atribusi. Dengan lisensi copyleft, penulis dapat menentukan bagaimana karyanya digunakan. Beberapa ahli mengatakan bahwa GitHub melanggar prinsip-prinsip tersebut. Yang lain mengatakan bahwa GitHub Copilot tidak melakukan sesuatu yang ilegal, tetapi kita perlu membahas lebih luas tentang AI dan penggunaan data sumber terbuka.
Pada akhirnya, regulator dan pengadilan akan memutuskan. Ini bukan alasan untuk menghindari penggunaan GitHub Copilot, tetapi ini adalah sesuatu yang harus diwaspadai. Jika Anda menggunakan GitHub Copilot secara ekstensif untuk proyek komersial, Anda mungkin ingin mendiskusikan paparan Anda terhadap risiko hukum dengan seorang ahli.
Apa selanjutnya untuk GitHub Copilot dan asisten pengkodean AI lainnya?
GitHub Copilot dapat membantu Anda membuat kode lebih cepat, mendorong penggunaan praktik terbaik pemrograman, dan memperluas pengetahuan pengkodean Anda. Kemampuannya yang luas, mulai dari menyarankan baris kode berikutnya hingga menulis kasus uji, menyederhanakan banyak aspek pengkodean yang lebih manual dan membosankan. Semua orang mulai dari pengembang baru hingga pengembang berpengalaman dapat memanfaatkan kemampuan GitHub Copilot dan belajar dari komunitas penggunanya yang besar.
Namun, hal ini tidak bisa menggantikan pengetahuan manusia. Anda harus meninjau tanggapannya untuk memastikan tanggapannya akurat dan aman. Anda mungkin juga lebih suka menggunakannya untuk beberapa bahasa pemrograman dibandingkan bahasa lain, karena hasilnya dapat bervariasi.
Jadi, apa selanjutnya untuk GitHub Copilot dan platform AI generatif lainnya? AI Generatif bergerak secepat kilat, dan terus mengikuti perkembangan alat, aplikasi, dan peraturan terbaru adalah cara terbaik untuk mempersiapkan masa depan.