Oke, jadi ChatGPT benar-benar memperbaiki kode saya.

1-debugging(1).png

Jadi. Pemrograman. Bagi orang-orang yang bekerja sebagai programmer, ini adalah permainan Jenga mental yang terus-menerus: satu baris kode ditumpuk di atas yang lain, membangun menara kode yang diharapkan cukup kuat untuk tidak runtuh.

Tapi selalu begitu. Kode tidak pernah berhasil saat pertama kali dijalankan. Oleh karena itu, salah satu keterampilan kunci bagi setiap programmer adalah debugging - seni dan ilmu untuk menemukan mengapa kode tidak berjalan atau melakukan sesuatu yang tidak terduga atau tidak diinginkan.

Ini sedikit seperti menjadi seorang detektif, menemukan petunjuk, dan kemudian mencari tahu apa yang ingin dikatakan petunjuk-petunjuk itu. Hal ini sangat membuat frustrasi dan sangat memuaskan, kadang-kadang pada saat yang sama.

Saya sering melakukan debugging. Ini bukan hanya karena kode tidak pernah berfungsi dengan sempurna saat pertama kali dijalankan. Ini juga karena saya menggunakan debugging untuk memberi tahu saya bagaimana kode berjalan, dan kemudian memperbaikinya seiring perjalanan.

Tapi meskipun debugging yang baik membutuhkan keterampilan khusus, pada akhirnya ini hanya tentang pemrograman. Setelah Anda mengetahui mengapa suatu blok kode tidak berfungsi, Anda harus mencari tahu bagaimana menulis sesuatu yang berfungsi.

Pengujian ChatGPT di Dunia Nyata

Minggu ini, saya sedang mengerjakan tiga tugas pengkodean untuk perangkat lunak yang saya tangani. Dua di antaranya adalah perbaikan untuk bug yang dilaporkan oleh pengguna. Satu lagi adalah sebuah kode baru untuk menambahkan fitur baru. Ini adalah pekerjaan pemrograman yang biasa bagi saya. Ini adalah bagian dari jadwal kerja rutin saya.

Juga:Bagaimana ChatGPT bekerja?

Saya memberitahumu hal ini, karena hingga saat ini, saya telah menguji ChatGPT dengan kode percobaan. Saya membuat skenario untuk melihat seberapa baik ChatGPT dapat bekerja. Kali ini berbeda. Saya mencoba menyelesaikan pekerjaan nyata, dan memutuskan untuk melihat apakah ChatGPT bisa menjadi alat yang berguna untuk menyelesaikan pekerjaan tersebut.

Ini adalah cara yang berbeda untuk melihat ChatGPT. Skenario pengujian sering kali sedikit dipaksakan dan sederhana. Koding dunia nyata sebenarnya melibatkan mengambil tiket dukungan pelanggan lain dari tumpukan dan bekerja pada hal-hal yang membuat pengalaman pengguna tidak menyenangkan.

Jadi, dengan itu, mari kita lihat tugas-tugas tersebut dan lihat bagaimana ChatGPT berperforma.

Menulis ulang kode ekspresi reguler

Dalam pemrograman, kita harus mencari banyak pola dalam teks. Untuk melakukannya, kita menggunakan bentuk matematika simbolik yang disebut ekspresi reguler. Saya telah menulis ekspresi reguler selama beberapa dekade, dan tetap tidak suka melakukannya. Itu melelahkan, rentan terhadap kesalahan, dan mistis.

Juga:Saya menggunakan ChatGPT untuk membantu saya memperbaiki kode lebih cepat, tetapi dengan biaya apa?

Jadi ketika ada laporan bug yang memberitahu saya bahwa bagian dari kode saya hanya memungkinkan angka bulat ketika seharusnya memungkinkan untuk dolar dan sen (dengan kata lain, beberapa digit angka, mungkin diikuti oleh tanda titik, dan kemudian jika ada tanda titik, diikuti oleh dua digit lainnya), saya tahu saya perlu menggunakan kode ekspresi reguler.

Memandang saya menemukan hal itu melelahkan dan menjengkelkan, saya memutuskan untuk meminta bantuan dari ChatGPT. Inilah yang saya tanyakan:

2-regex-q.jpg

Dan inilah balasan AI yang disajikan dengan sangat baik (klik kotak kecil untuk memperbesar):

3-regex-a.jpg

Saya menyalin kode ChatGPT ke dalam fungsi saya, dan berhasil. Daripada menghabiskan waktu 2-4 jam yang membuat kepala pening, hanya butuh sekitar lima menit untuk membuat prompt dan mendapatkan jawaban dari ChatGPT.

Memformat ulang array

Selanjutnya adalah melakukan pemformatan ulang array. Saya suka mengerjakan kode array, tetapi itu juga melelahkan. Jadi saya sekali lagi mencoba ChatGPT. Total kegagalan.

Juga:Bagaimana cara mengajarkan ChatGPT memberikan sumber dan kutipan

Pada saat saya selesai, mungkin sudah memberikan sepuluh prompt yang berbeda. Beberapa tanggapan terlihat menjanjikan, tetapi ketika saya mencoba menjalankan kodenya, muncul error. Beberapa kode mengalami crash. Beberapa kode menghasilkan kode error. Dan beberapa kode berjalan, tetapi tidak sesuai dengan yang saya inginkan.

Setelah sekitar satu jam seperti ini, saya menyerah dan kembali ke teknik normal saya dengan menggali informasi di Github dan StackExchange untuk melihat ada tidak contoh-contoh yang saya coba, dan kemudian menulis kode saya sendiri.

Sejauh ini, itu satu kemenangan dan satu kekalahan untuk pengalaman ChatGPT. Tetapi sekarang saya akan meningkatkan tantangan ini.

Sebenarnya mencari kesalahan di kode saya

OK, jadi bagian selanjutnya ini akan sulit dijelaskan. Tapi bayangkan bahwa jika sulit dijelaskan kepada Anda (asumsinya sebagai manusia dan bukan salah satu dari sekitar 50 bot yang hanya menyalin dan mempublikasikan karya saya di situs web yang mencurigakan dan spam), maka jauh lebih sulit untuk menjelaskannya kepada kecerdasan buatan (AI).

Saya sedang menulis kode baru. Saya memiliki sebuah fungsi yang mengambil dua parameter, dan sebuah pernyataan pemanggilan yang mengirimkan dua parameter ke dalam kode saya. Fungsi-fungsi adalah kotak hitam kecil yang melakukan fungsi-fungsi yang sangat spesifik dan mereka dipanggil (diminta untuk melakukan keajaiban mereka) dari baris kode yang berjalan di tempat lain dalam program.

Permasalahannya adalah, saya terus menerima pesan kesalahan.

Bagian yang penting dari pesan itu adalah di mana disebutkan "1 lulus" pada satu titik dan "tepat 2 yang diharapkan" pada titik lainnya. Saya melihat pada pernyataan pemanggilan dan definisi fungsi dan ada dua parameter di kedua tempat tersebut.

Disini: Cara menggunakan ChatGPT untuk menyingkat ringkasan buku, artikel, atau kertas kerja

W-apa-apaan ini?

Setelah sekitar lima belas menit kebingungan mendalam, saya memutuskan untuk meminta bantuan dari AI. Jadi, saya menulis prompt berikut:

4-untitled.jpg

Saya menunjukkan baris kode yang melakukan panggilan, saya menunjukkan fungsi itu sendiri, dan saya menunjukkan penanganannya, potongan kecil kode yang mendispatch fungsi yang dipanggil dari hook dalam program utama saya.

Dalam beberapa detik, ChatGPT merespons dengan ini (klik persegi kecil untuk memperbesar):

5-error-with-apply-filters-in-wordpress.jpg

Seperti yang disarankan, saya memperbarui parameter keempat dari fungsi add_filter() menjadi 2, dan itu berhasil!

ChatGPT mengambil segmen kode, menganalisis segmen tersebut, dan memberikan saya diagnosis. Untuk menjelaskan, agar bisa memberikan rekomendasinya, ChatGPT perlu memahami bagaimana WordPress menangani hooks (fungsi add_filter) dan bagaimana fungsionalitas itu diterjemahkan menjadi perilaku dari baris kode yang dipanggil dan dieksekusi.

Juga: Saya meminta ChatGPT untuk menulis plugin WordPress yang saya butuhkan. Plugin tersebut selesai dalam waktu kurang dari 5 menit

Saya harus menandai itu sebagai hal yang luar biasa, tak terbantahkan "hidup di masa depan" yang luar biasa.

Apa artinya semua ini?

Seperti yang saya sebutkan sebelumnya, debugging adalah sedikit seni dan sedikit ilmu. Sebagian besar lingkungan pengembangan yang baik memiliki alat debugging yang kuat yang memungkinkan Anda melihat aliran data melalui program saat berjalan, dan ini membantu saat mencoba melacak bug.

Juga: Para ahli ini sedang berlomba melindungi AI dari para hacker

Namun, ketika Anda terjebak, seringkali sulit untuk mendapatkan bantuan. Hal itu karena bahkan rekan yang dekat mungkin tidak familiar dengan jangkauan lengkap dari kode yang Anda sedang debugging. Program yang sedang saya kerjakan terdiri dari 153.259 baris kode pada 563 file -- dan sejauh program-program pergi, itu relatif kecil.

Jadi, jika saya ingin mendapatkan bantuan dari seorang rekan kerja, saya mungkin harus membuat permintaan hampir sama dengan cara saya mengirimkannya ke ChatGPT.

Namun ada sesuatu yang perlu dipertimbangkan: Saya ingat untuk menyertakan baris handler meskipun saya tidak menyadari bahwa itulah tempat kesalahan tersebut. Sebagai uji coba, saya juga mencoba meminta ChatGPT untuk mendiagnosis masalah saya dalam suatu prompt di mana saya tidak menyertakan baris handler, dan ia tidak dapat membantu. Jadi ada batasan yang sangat pasti terhadap apa yang dapat dilakukan ChatGPT untuk debugging saat ini, pada tahun 2023.

Juga: Chatbot AI terbaik untuk dicoba

Pada dasarnya, Anda harus tahu bagaimana mengajukan pertanyaan yang tepat dengan cara yang tepat, dan pertanyaan-pertanyaan tersebut harus cukup singkat agar ChatGPT dapat mengatasi semuanya dalam satu permintaan. Hal ini membutuhkan pengetahuan dan pengalaman pemrograman sebenarnya untuk tahu bagaimana melakukannya.

Dapatkah saya memperbaiki bug tersebut sendiri? Tentu saja. Saya belum pernah mengalami bug yang tidak bisa saya perbaiki. Tetapi apakah itu akan memakan waktu dua jam atau dua hari (ditambah pizza, umpatan, dan banyak kafein) sambil menderita banyak gangguan, itu adalah sesuatu yang saya tidak tahu. Saya bisa memberitahu Anda bahwa ChatGPT memperbaikinya dalam hitungan menit, menghemat banyak waktu dan frustrasi bagi saya.

Melihat ke arah masa depan (mungkin dystopian)

Saya melihat masa depan yang sangat menarik, di mana akan mungkin memberi makan ChatGPT sebanyak 153 ribu baris kode dan memintanya memberi tahu Anda apa yang perlu diperbaiki. Microsoft (yang memiliki Github) sudah bekerja pada alat "copilot" untuk Github guna membantu programmer dalam membuat kode. Microsoft juga telah menginvestasikan miliaran dolar pada OpenAI, pembuat ChatGPT.

Meskipun layanan ini mungkin terbatas pada lingkungan pengembangan milik Microsoft, saya bisa melihat masa depan di mana AI akan memiliki akses ke seluruh kode di Github, dan dengan demikian seluruh kode dalam proyek apa pun yang Anda posting di Github.

Juga: Saya meminta ChatGPT untuk menulis sebuah episode singkat Star Trek. Faktanya, itu berhasil

Setelah melihat betapa baiknya ChatGPT mengidentifikasi kesalahan dari kode yang saya berikan, saya dapat melihat masa depan di mana para programmer dapat dengan mudah meminta ChatGPT (atau versi serupa bermerk Microsoft) untuk mencari dan memperbaiki bug dalam proyek-proyek secara keseluruhan.

Dan di sinilah tempat saya membawa percakapan ini ke tempat yang sangat gelap.

Bayangkan jika Anda bisa meminta ChatGPT untuk melihat repositori Github Anda untuk proyek tertentu dan memintanya untuk menemukan dan memperbaiki bug. Salah satu cara yang mungkin adalah dengan meminta ChatGPT untuk menyajikan setiap bug yang ditemukan kepada Anda untuk persetujuan, sehingga Anda dapat melakukan perbaikan.

Tapi bagaimana dengan situasi di mana Anda meminta ChatGPT untuk hanya memperbaiki bug, dan Anda membiarkannya melakukannya tanpa repot-repot melihat seluruh kode sendiri? Apakah bisa menyisipkan sesuatu yang jahat dalam kode Anda?

Juga: Bard vs. ChatGPT: Apakah Bard dapat membantu Anda dalam pemrograman?

Dan bagaimana dengan situasi di mana AI yang sangat mampu memiliki akses ke hampir seluruh kode di repositori Github dunia? Apa yang bisa disembunyikan oleh AI tersebut dalam semua kode itu? Kejahatan jahat apa yang bisa dilakukan oleh AI itu terhadap infrastruktur dunia jika dapat mengakses semua kode kita?

Ayo bermain permainan pikiran sederhana. Bagaimana jika AI diberikan aturan pertama Asimov sebagai instruksi utama. Yaitu, "robot tidak boleh menyakiti manusia, atau dengan tidak melakukan apa-apa membiarkan manusia terluka." Apakah ia tidak bisa memutuskan bahwa seluruh infrastruktur kita menyebabkan bahaya bagi kita? Dengan memiliki akses ke semua kode kita, ia mungkin saja memutuskan untuk menyelamatkan kita dari diri kita sendiri dengan menyisipkan pintu belakang yang memungkinkannya, misalnya, mematikan jaringan listrik, mendaratkan pesawat, dan menghentikan lalu lintas di jalan raya.

Saya sepenuhnya menyadari bahwa skenario di atas bersifat hiperbolik dan menakutkan. Namun, itu juga mungkin terjadi. Pada dasarnya, meskipun para programmer melihat kode mereka di Github, tidak mungkin bagi siapa pun untuk melihat semua baris kode mereka.

Juga: Cara menggunakan ChatGPT untuk menulis formula Excel

Mengenai saya, saya akan mencoba untuk tidak terlalu memikirkannya. Saya tidak ingin menghabiskan sisa tahun 2020 dengan berbaring dalam posisi janin, bergoyang-goyang di lantai. Sebagai gantinya, saya akan menggunakan ChatGPT untuk kadang-kadang membantu saya menulis dan memperbaiki rutinitas kecil, tetap fokus, dan berharap AI di masa depan tidak membunuh kita semua dalam upaya mereka untuk "tidak membiarkan manusia terluka."

Apa pendapatmu tentang fakta bahwa ChatGPT dapat membantu dalam melakukan pemecahan masalah atau membuatmu merasa takut? Apakah kau berpikir bahwa kecerdasan buatan akan membunuh kita dalam tidur kita, atau kau berpikir bahwa kita akan menyaksikan kehancuran kita dengan mata terbuka lebar? Atau apakah kau, seperti saya, akan mencoba untuk tidak terlalu memikirkannya karena membuat kepalamu sakit? Berbicara dengan saya di kolom komentar di bawah ini. Selama kau masih bisa melakukannya.

Buka kekuatan AI dengan HIX.AI!