Minggu, 30 Agustus 2020

Kegagalan Perangkat Lunak (Uber Self-Driving Cars)

 

Kegagalan Perangkat Lunak Uber

(Uber Self-Driving Cars)

 

Dalam kehidupan sehari-hari, tentunya kita memerlukan transportasi untuk berpindah dari suatu tempat ke tempat yang lebih jauh. Selain menggunakan kendaraan pribadi, biasanya kita akan menggunakan transportasi umum. Pada era sekarang ketika teknologi informasi berkembang dengan pesat, banyak bisnis transportasi umum berbasis online yang bermunculan. Salah satunya adalah Uber. Uber adalah perusahaan jaringan transportasi asal San Francisco, California yang menciptakan aplikasi penyedia transportasi yang menghubungkan penumpang dengan sopir kendaraan sewaan. Perusahaan ini pernah menjajal pasar Indonesia, namun hal itu tak mampu bertahan lama karena kalah bersaing dengan moda transportasi online lainnya.

Selama Uber beroperasi di berbagai negara, ternyata sering terjadi banyak masalah dan kendala menyangkut dengan software yang mereka buat. Kesalahan atau kegagalan software yang dihadapi misalnya masalah beban tarif yang kacau pada kartu kredit penumpang yang tak hanya terjadi pada satu negara. Pengguna di wilayah luar Indonesia hanya dapat menggunakan moda ini dengan pembayaran menggunakan kartu kredit atau debit (non tunai). Pada saat mereka selesai perjalanan, tagihan tersebut akan masuk ke dalam tagihan kartu kreditnya. Beberapa kasus menyebutkan bahwa tarif yang dibebankan melonjak sangat tinggi sehingga mereka mendapatkan tagihan hingga ratusan juta atas nama akun Ubernya. Uber sempat menyangkal peristiwa tersebut merupakah ulah peretas namun nyatanya software mereka yang bermasalah. Menanggapi hal ini, telah dilakukan perbaikan dan pengembalian tarif ke normal.

Tak hanya itu, dalam melakukan sebuah inovasi baru, Uber sempat mengalami kegagalan. Inovasi tersebut adalah “Uber Self-Driving Cars” dimana layanan ini menggantikan pengemudi manusia dengan program. Mobil yang digunakan mempunyai 20 kamera, 7 laser, GPS, radar, dan LIDAR, sebuah teknologi yang dapat mengukur jarak yang telah didapatkan oleh laser sehingga mobil dapat “melihat” dan menginterpretasikan aksi di sekitar mereka.

Karena merasa yakin dengan apa yang dibuatnya, pengujian pun dilakukan. Pada pengujian tahun 2017, mobil ini mendapatkan banyak pelanggaran lalu lintas dan kecelakaan kecil. Pada Maret 2018, pengujian tersebut akhirnya berujung fatal. Sebuah mobil self-driving milik Uber di Tempe, Arizona menabrak seorang pejalan kaki yang berjalan menyebrang di malam hari. Pejalan kaki itu mengalami luka yang serius sehingga dibawa ke rumah sakit. Namun tak lama, korban tersebut meninggal. Mobil berada dalam mode otonom pada saat kecelakaan. Meskipun ada operator manusia di kursi pengemudi, orang tersebut tidak dapat mengendalikan kendaraan ketika kecelakaan terjadi. Segera setelah kecelakaan fatal itu, Uber telah menangguhkan tes mengemudinya di jalanan umum.

Pada Mei 2018, NTSB (National Transportation Safety Board) dari Amerika menerbitkan laporan tentang kasus tersebut. Laporan itu menjelaskan bahwa perangkat lunak yang ada ditulis dengan buruk. Seperti kebanyakan program self-driving lainnya, software milik Uber mencoba untuk mengklasifikasikan setiap objek yang terdeteksi seperti mobil, sepeda, atau lainnya. Kemudian, berdasarkan klasifikasi ini, perangkat lunak akan menghitung kecepatan dan kemungkinan lintasan untuk objek. Namun sistem ternyata gagal melakukannya. Pada laporan NTSB tertulis timeline detik demi detik yang menunjukkan apa yang “dipikirkan” perangkat lunak tersebut sebelum menabrak korban. Timeline tertulis sebagai berikut.

·      5,2 detik sebelum tumbukan, sistem mengklasifikasikannya sebagai objek “lain” dan memutuskan bahwa ia “statis” atau tidak bergerak sehingga tidak mungkin jika objek melakukan perjalanan ke jalur mobil.

·      4,2 detik sebelum tumbukan, ia direklasifikasi sebagai “kendaraan” dan sistem mengakui bahwa korban bergerak tetapi memperkirakan dia akan tetap berada di jalurnya saat itu.

·      Antara 3,8 sampai 2,7 detik sebelum tumbukan, klasifikasi berganti beberapa kali menjadi “kendaraan” dan “lainnya”.

·      2,6 detik sebelum tumbukan, sistem mengklasifikasikan korban beserta sepedanya menjadi “sepeda” dan sistem kembali meramalkan bahwa dirinya tetap berada di jalurnya.

·      1,5 detik sebelum tumbukan, pernyataan tersebut berubah menjadi “tidak dikenal”.

·      1,2 detik sebelum tumbukan, berubah kembali menjadi “sepeda” ketika objek memasuki jalur SUV dan sistem menyadari kecelakaan sudah dekat

Terdapat dua hal yang patut diperhatikan tentang urutan kejadian tersebut. Pertama, sistem ini tidak mengklasifikan korban sebagai “pejalan kaki”. Menurut NTSB, hal itu terjadi karena desain sistem tidak memiliki pertimbangan untuk pejalan kaki yang sedang berjalan. Kedua, klasifikasi yang berpindah terus menerus mencegah perangkat lunak Uber menghitung secara akurat lintasan objek. Mungkin kita berpikir bahwa sistem mengemudi sendiri saat melihat suatu benda bergerak ke jalurnya, maka mobil akan melakukan pengereman bahkan jika sistem tidak yakin benda apa yang sedang dihadapinya. Namun hal itu bukan merupakan cara kerja perangkat lunak Uber.

Cara kerja sistem ini menggunakan lokasi objek yang diamati sebelumnya untuk membantu menghitung kemacetan dan prediksi jalur yang ada di depannya. Namun jika sistem persepsi mengubah klasifikasi yang terdeteksi, riwayat pelacakan tidak lagi dipertimbangkan saat membuat lintasan baru. Dengan demikian dapat dikatakan bahwa pada kasus ini, sistem tidak dapat menentukan objek apa yang dihadapi dan bertindak seolah-olah objek tersebut tidak bergerak (benda mati). Berdasarkan timeline sebelumnya, disebutkan hanya pada 1,2 detik sebelum kecelakaan, sistem menyadari kecelakaan sudah dekat. Pada titik ini, mungkin sudah terlambat untuk menghindari tabrakan. Menurut NTSB, kendaraan tersebut ternyata tidak mulai melakukan pengereman hingga 0,2 detik sebelum kecelakaan fatal. Hal ini membuat tabrakan jelas tidak dapat dihindari. Untuk menghindari tabrakan, sistem sebenarnya tidak harus mengerem dengan kekuatan penuh tetapi menerapkan gaya pengereman yang memulai perlambatan kendaraan secara bertahap sembari mengingatkan pengemudi untuk mengambil alih.

Tak lama setelah laporan keluar, Uber mengumumkan bahwa ia mematikan kemampuan mobil untuk membuat keputusan darurat sendiri seperti membanting rem atau membelok keras. Sebenarnya kendaraan milik Uber memiliki sistem Volvo XC90 yang dilengkapi dengan sistem pengereman darurat yang canggih namun sayangnya Uber menonaktifkan sistem pencegahan tersebut sesaat teknologi miliknya sendiri aktif. Teknologinya sendiri ternyata menggunakan beberapa frekuensi yang sama dengan radar Volvo sehingga menciptakan gangguan tersendiri. Sejak itu pula, Uber telah mendesain ulang radar mereka untuk bekerja pada frekuensi yang berbeda dari radar Volvo dan memungkinkan sistem pengereman darurat Volvo tetap aktif sementara dirinya menguji tenologinya. Tak hanya itu, ia juga telah mendesain ulang aspek lain dari perangkat lunaknya. Perangkat lunak mereka kini tidak akan lagi membuang data lokasi objek sebelumnya ketika klasifikasi objek berubah.

Berdasarkan kasus kegagalan inovasi di atas, dapat dilakukan analisis dengan menggunakan beberapa software quality attributes. Hasil analisisnya dapat dijabarkan sebagai berikut.

1.    Security

Keamanan mencakup kemampuan sistem perangkat lunak untuk melindungi entitas terhadap serangan dan penyalahgunaan, serta untuk melindungi akses ke sumber daya. Beberapa aspek yang menyangkut keamanan, yaitu:

-          Accountability: menyangkut kewajiban untuk menanggung konsekuensi atas kegagalan.

Berdasarkan kasus tersebut, Uber sudah melakukan kewajiban pertanggungjawaban untuk memperbaiki software nya, mulai dari mematikan kemampuan mobil untuk membuat keputusan sendiri, mendesain ulang radar, dan mendesain ulang aspek lain dari perangkat lunaknya.

-          Auditability/Traceability: kemampuan layanan untuk dipantau dan menghasilkan jejak audit dimana auditnya adalah urutan peristiwa yang dapat direkonstruksi dan diperiksa. Berdarkan kasus tersebut, software milik Uber sudah menghasilkan jejak audit sehingga NTSB dapat memberikan timeline detik-detik sebelum tabrakan terjadi sehingga dapat dianalisis penyebab terjadinya kecelakaan.

-          Integrity: kemampuan untuk memastikan bahwa sistem dan datanya tidak rusak.

Berdasarkan kasus tersebut, Uber dinilai kurang karena sistem ternyata belum sempurna dan masih butuh beberapa perbaikan. Selain itu, sistem tak mampu memberikan peringatan kepada pengemudi untuk mengambil alih kendali ketika sistem bermode otonom sehingga pengemudi tidak mengetahui adanya kegagalan dari sistem.

-          Safety: kemampuan untuk beroperasi tanpa resiko cedera atau bahaya bagi pengguna dan lingkungan di sekitar sistem.

Berdasarkan kasus tersebut, safety dari software ini jelas kurang karena ia tak mampu mengenali sebuah objek hingga terjadi tabrakan yang berakibat fatal.

2.    Performance

Hal ini mencakup kualitas dari kinerja software. Beberapa aspek menyangkut keamanan, yaitu:

-          Throughput: mengacu pada jumlah peristiwa yang ditangani selama suatu interval.

Berdasarkan kasus tersebut, sebenarnya dalam suatu interval (beberapa detik) kemampuan mendeteksi objek dapat beberapa kali berganti yang berarti troughput nya sudah baik, hanya saja kesalahan klasifikasi membuat hal ini menjadi kurang baik.

-          Response Time: waktu yang berlalu ketika layanan menyelesaikan satu transaksi lengkap.

Berdasarkan kasus tersebut, waktu respon berubah-ubah untuk mendeteksi objek. Namun untuk mengklasifikasikannya menjadi yang mendekati, yakni sepeda dan menyakini objek tersebut tidak statis, membutuhkan waktu sekitar 4 detik (5,2 detik – 1,2 detik) sejak pendeteksian awal.

3.    Modifiability

Hal ini menyangkut biaya untuk melakukan perubahan.

Berdasarkan kasus tersebut, terlihat bahwa Uber melakukan beberapa perubahan besar. Setelah perubahan ditentukan, harus dilakukan implementasi, diuji, dan digunakan. Semua tindakan ini membutuhkan waktu dan uang yang sebenarnya dapat terukur. Dilihat dari beberapa perubahan yang dilakukan, dapat dibayangkan bahwa Uber tidak mengeluarkan uang yang sedikit untuk memperbaiki sistem tersebut (mulai dari perbaikan sistem radar, penyewaan radar Volvo, dan pengubahan aspek di software nya).

4.    Availability

Hal ini berkaitan dengan keandalan aplikasi beserta kegagalan sistem dan konsekuensi yang terkait. Kegagalan sistem terjadi ketika sistem tidak lagi memberikan layanan yang konsisten dengan spesifikasinya. Berdasarkan kasus tersebut, software tersebut sebenarnya selalu tersedia untuk digunakan saat dibutuhkan namun dirinya mengalami kegagalan dalam mengklasifikasi objek tertentu selama 4 detik, melalukan penundaan keputusan selama 1 detik, hingga pada waktu 0,2 detik akhirnya mengambil keputusan untuk melakukan pengereman secara kekuatan penuh, namun pada akhirnya kecelakaan tidak dapat dihindari.

Setelah dianalisis dapat diberikan kesimpulan bahwa software milik Uber ini sebenarnya dapat bermanfaat di masa depan karena mempermudah aktivitas manusia, namun terdapat beberapa masalah yang harus segera diperbaiki demi keselamatan pengemudi, pengguna, maupun orang-orang yang berada di sekitarnya. Sebenarnya dalam menghindari resiko kegagalan perangkat lunak, diperlukan perhatian penuh akan analisis software quality attributes secara lengkap. Dengan menganalisisnya, developer dapat melakukan perbaikan sedini mungkin dan membuat strategi penyelesaian yang cepat jika terjadi kesalahan di kemudian hari.

 

REFERENSI

Lee, Timothy B., 2019. How Terrible Software Design Decision Led to Uber’s Deadly 2018 Crash. Dikutip dari https://arstechnica.com/cars/2019/11/how-terrible-software-design-decisions-led-to-ubers-deadly-2018-crash/ pada 29 Februari 2020 pukul 14.17 WIB.

Lenthang, Marlene. 2019. Uber’s self-driving car in Arizona crash that killed a pedestrian last year had the emergency brakes disabled and couldn’t detect jaywalkers, report reveals. Dikutip dari https://www.dailymail.co.uk/news/article-7653911/U-S-agency-finds-flaws-Uber-self-driving-software-tallies-prior-crashes.html pada 29 Februari 2020 pukul 14.42 WIB.

Label:

Selasa, 14 Juli 2020

Praktikum V : Menarik kesimpulan dari serangkaian data dalam database dengan aggregate function

Pada praktikum ini, digunakanlah aggregate function berupa COUNT, AVERAGE, SUM, MIN, dan MAX. Lebih lengkapnya, silakan klik disini.

Label:

Praktikum IV : Menggunakan syntax join untuk memanipulasi tabel

Pada praktikum ini, digunakan query berupa JOIN, INNER JOIN, RIGHT JOIN, dan LEFT JOIN. Lebih lengkapnya, silakan klik disini.

Label:

Praktikum III : Memanipulasi data dalam tabel pada PostgreSQL

Pada praktikum ini, digunakan query berupa SELECT, FROM, dan WHERE. Lebih lengkapnya, silakan klik disini.

Label:

Praktikum Basis Data II : Pembuatan tabel data dengan menggunakan pgAdmin

Praktikum Basis Data II memuat pembuatan tabel data dengan menggunakan pgAdmin. Dalam praktiknya, terdapat 3 buah tabel yang dibuat, yaitu: tabel accounts, tabel roles, dan tabel account_roles. Untuk membuat tabel tersebut dapat dilakukan beberapa langkah. Lebih lengkapnya, silakan klik disini.

Label:

Kamis, 11 Juni 2020

Studium Generale #2 - The Art of Negotiation

Pada hari Jumat, 30 Agustus 2019 bertempat di ruang E5 dan E6 Departemen Teknik Elektro dan Teknologi Informasi, seorang psikolog bernama Muhammad Kammagama Harismina telah menyampaikan ilmu terkait negotiation skill kepada seluruh mahasiswa yang sedang mengambil mata kuliah Studium Generale. Namun sebelumnya, beliau memberikan penjelasan terkait konflik.

Dasarnya sebagai makhluk sosial, kita tentunya memiliki ciri khas masing-masing atau karakter yang berbeda. Antara satu dengan yang lainnya pun tidak mau disamakan dan jika dilakukan akan menimbulkan adanya konflik. Konflik selalu ada di setiap aspek kehidupan sosial dimana ia dapat menjadi sebuah peluang namun dapat pula menjadi suatu sumber masalah atau perpecahan. Hal itu dikatakan sebagai peluang ketika terdapat celah untuk diberikan pemikiran positif demi mendapatkan keuntungan.

Konflik tersebut dapat muncul karena berbagai alasan. Salah satu alasannya adalah akibat perbedaan persepsi yang mana timbul ketika terdapat ketidakselarasan pemikiran individu yang satu dengan yang lainnya. Artinya, satu individu merasa bahwa hal-hal yang dimiliki individu lain lain mempengaruhi persepsi individu tersebut.

Jika sudah terjadi konflik, kita harus menyelesaikan permasalahan itu dengan 5 prinsip. Prinsip tersebut, yaitu: competing, collaborating, avoiding, dan accommodating.

  • Competing merupakan sikap penyelesaian yang dilakukan untuk mendapatkan keuntungan bersama walaupun nantinya akan menimbulkan sikap iri terhadap satu sama lain. 
  • Avoiding berarti kita lari dari masalah yang ada tanpa adanya sebuah aksi lanjutan. 
  • Compromising merupakan sikap kita untuk mencocokkan segala perbedaan agar dapat menyatu. 
  • Accommodating adalah sikap dimana kita memihak pihak yang kalah.
  • Collaborating ialah sikap yang paling baik karena dapat terdapat berbagai solusi yang timbul.

          Penggunaan kelima prinsip di atas haruslah disesuaikan dengan waktu dan lingkupnya. Misalnya, di lingkup keluarga, kita dapat memilih prinsip compromising dan collaborating. Lalu, penyelesaian masalah dengan menggunakan pihak ketiga juga perlu diperhatikan. Pihak ketiga ini berperan sebagai negosiator yang diharuskan bersikap netral dan dapat memahami keduanya. Ia diharapkan dapat mencari celah untuk masuk ke dalam masalah dan mencoba untuk memberikan ketenangan serta meleraikannya.

            Sikap yang dilakukan pihak ketiga itu dapat disebut negosiasi. Negosiasi adalah metode yang digunakan untuk menyelesaikan sebuah konflik. Hal ini dilakukan atas dasar proses tawar menawar baik secara distributif ataupun integratif. Perbedaan antara tawar menawar distributif dan integratif tersebut dapat digambarkan pada tablel di bawah ini.

Indikator

Distributif

Integratif

Tujuan

Berusaha membagi sumber daya yang jumlahnya tetap.

Contoh: mendapatkan profit sebanyak mungkin.

Menciptakan solusi menang-kalah atau saling menguntungkan.

Contoh: membagi profit sama rata sehingga kedua belah pihak puas.

Motivasi

Menang-kalah

Menang-menang

Fokus

Posisi/memiliki

Kepentingan Bersama

Kepentingan

Berlawanan

Selaras

Lama hubungan

Jangka pendek

Jangka Panjang

Tingkat berbagi informasi

Rendah

Menurutnya, berbagi informasi hanya akan memungkinkan pihak lain mengambil keuntungan dari dirinya.

Tinggi

Menurutnya, berbagi informasi adalah untuk kepentingan bersama.

Penggunaan kedua jenis tawar menawar di atas haruslah disesuaikan dengan keadaan nyata yang dihadapi di lapangan. Pihak ketiga diharapkan jangan sampai salah mengambil langkah karena jika salah maka masalah tersebut tentunya tidak akan terselesaikan secara baik.

            Untuk meminimalisir kesalahan, pihak ketiga seharusnya memiliki kemampuan dasar dalam bernegosiasi. Kemampuan-kemampuan dasar tersebut, yaitu: kemampuan beradaptasi, communication skill, berpikir kritis, mengumpulkan perspektif orang lain, sabar (mengontrol emosi secara baik), dan mempunyai daya tahan untuk bertahan menghadapi proses negosiasi yang lama. Setelah dirasa mempunyai karakteristik kemampuan tersebut maka ia dapat melakukan aksinya.

Proses negosiasi yang terjadi dapat dilakukan dengan beberapa langkah. Pertama, seorang negosiator perlu melakukan persiapan dan perencanaan untuk mengetahui tujuan negosiasi. Kedua, ia harus menetapkan aturan-aturan dasar negosiasi kepada pihak yang berkonflik. Misalnya, ketika A berbicara maka B harus diam dan mendengarkan. Ketiga, terjadi klarifikasi dan justifikasi untuk menguatkan, klarifikasi, mempertahankan, dan menjustifikasi tuntutan. Keempat, negosiator tersebut masuk ke dalam masalah dan mencoba untuk melakukan tawar menawar guna mencari solusi yang terbaik. Terakhir yang kelima adalah mengimplementasikan dan melakukan pengawasan pasca kejadian tersebut.

Dalam kelima proses itu diharapkan dijalankan dengan adanya komunikasi yang efektif dimana negosiator harus benar-benar hadir di dalam percakapan (mendengar aktif yang mana ekspresi dan nada suara selaras) dan berempati. Empati merupakan tingkat mendengarkan yang paling atas. Tingkatan mendengarkan dari paling atas ke bawah adalah sebagai berikut.

1.      Empathic Listening

2.      Attentive Listening

3.      Selective Listening

4.      Pretend Listening

5.      Ignoring

Tentunya sikap mengabaikan atau tidak mendengarkan lawan bicara adalah hal yang perlu dihindari oleh negosiator atau penengah dalam menyelesaikan masalah yang terjadi.

 Setelah mendapatkan materi negotiation skill dari pembicara, saya dapat lebih mengerti bagaimana cara bersikap ketika menghadapi sebuah konflik dari sisi kita yang sedang bermasalah maupun sisi saat menjadi penengah diantara yang bertikai. Seorang penegah atau negosiator merupakan orang yang mampu menyelesaikan masalah melalui proses negosiasi dengan kemampuan dasar yang dimilikinya. Tentunya ilmu yang diberikan pada Studium Generale ini akan sangat bermanfaat bagi seluruh mahasiswa ke depannya dan diharapkan dapat diimplementasikan ke dalam kehidupan sosial mereka.

Label: