How to Restore Deleted Files on a Computer

Hasil gambar untuk Cara Mengembalikan File yang Terhapus di Komputer Kehilangan file penting di komputer memang bisa membuat Anda panik. Tapi Anda bisa mengatasi itu. Ada banyak sekali cara mengembalikan file yang terhapus. Pada artikel kali ini kami akan memberikan beberapa diantaranya.
Namun, sebelum kami benar-benar memberikan beberapa alternatif cara backup data terhapus, mari ketahui terlebih dulu apa yang sebenarnya terjadi ketika Anda tak dapat menemukan file Anda di komputer.

Ke Mana Perginya File Saya?

Anda mungkin bingung soal bagaimana bisa file Anda hilang. Entah Anda tak sengaja menghapusnya atau bisa jadi ada serangan virus yang membuat file Anda hilang begitu saja. Kami akan berusaha menjelaskannya. Pada dasarnya kalaupun Anda tak sengaja menghapus data Anda di komputer, file itu tidak pergi ke tempat yang tak jelas.
Misal, Anda menggunakan program Windows. Anda bisa melihat ke keranjang sampah yang biasa disebut juga sebagai Recycle Bin. Seringnya, kalau masih dalam jangka waktu yang tak terlalu lama, Anda masih bisa menemukan file yang di-delete tadi dalam Recycle Bin. Tapi bila Anda sudah tak bisa lagi menemukannya di Recycle Bin, Anda mungkin kebingungan ke mana lagi perginya file Anda. Berikut adalah penjelasan sederhananya!
Jadi, file yang Anda cari itu dipindahkan oleh perangkat komputer Anda ke satu tempat yang itu adalah didalam hardisk Anda. Jadi dengan begitu komputer Anda sebenarnya masih bisa membaca file yang dicari itu. Nah, berikutnya kalau ada file baru yang terhapus permanen di Recycle Bin memakan space hardisk, maka barulah file yang sebelumnya itu benar-benar hilang atau tidak bisa dikembalikan lagi.
Inilah yang bisa jadi harapan Anda, semoga file yang Anda butuhkan itu tidak tersingkir karena keterbatasan space hardisk komputer.

Langkah Pertama, Cara Backup Konvensional

Jika Anda sudah membaca part penjelasan kami sebelumnya, Anda pasti sudah mengerti kalau cara konvensional yang satu ini adalah langkah paling pertama yang harus Anda lakukan.
Anda bisa pergi ke keranjang sampah di perangkat komputer Anda. Berikut adalah rincian langkah demi langkahnya:
  • Klik icon atau gambar keranjang sampah yang ada di desktop Anda
  • Cari file yang Anda butuhkan, coba ingat-ingat nama file-nya dan ketik di kolom Search
  • Kalau sudah ketemu, coba klik kanan kemudian klik opsi “Restore” untuk mengembalikan file-nya itu
Kalau memang beberapa langkah di atas sudah dilakukan, Windows akan otomatis mengembalikan file yang tadinya terhapus tersebut ke tempat di mana Anda menaruhnya semula. Langkah pertama ini sangat mudah dilakukan tapi tantangannya adalah Anda kemudian harus mengingat-ingat di mana tadinya Anda menaruh file itu.
Soal mengakses Recycle Bin, kalau Anda memang tidak bisa ketemu di desktop, Anda mungkin sebelumnya tak sengaja menyembunyikannya. Kalau hal ini terjadi, ya Anda tinggal klik kanan pada area manapun di desktop Anda kemudian klik kanan. Setelah klik kanan coba klik opsi “Show and Hide” kemudian nanti bakal muncul tanda centang disamping kata-kata opsi tersebut. Otomatis, setelah langkah itu, Recycle Bin Anda kembali ke desktop seperti semula.
Ada satu cara konvensional lagi yang bisa Anda lakukan. Cara itu adalah dengan mengecek hard drive backup Anda. Para pengguna komputer maupun laptop yang punya file-file penting biasanya punya hard disk yang satu itu. Jadi, kalau terjadi kehilangan data atau data lost, Anda tidak usah repot mencari-cari filenya. Tinggal akses hard drive backup yang dimiliki.
Jika semua cara konvensional itu tidak berhasil mengembalikan data Anda, coba baca cara yang akan kami berikan berikutnya!

Langkah Kedua, Menggunakan Software Gratis Semacam Recuva

Sebenarnya ada banya software gratis lain yang bisa Anda gunakan untuk mengembalikan data yang sudah terhapus dari komputer Anda. Namun kali ini kami akan memberi panduan bagi software yang sudah populer untuk backup yaitu Recuva!
  1. Download Recuva pakai komputer Anda!
  2. Coba klik kanan kemudian tekan/klik terus (tahan) supaya Anda bisa lakukan ‘extract’.
  3. Setelah Anda sudah mengekstraknya, silakan buka folder Recuva yang ada dan pilih opsi yang memang sesuai dengan spesifikasi komputer Anda. Recuva.exe ini merupakan file buat komputer yang pakai sistem 32-bit. Sementara itu yang Recuva64.exe buat komputer yang dijalankan dengan sistem 64-bit.
  4. Kemudian, Recuva bisa dibuka lewat Wizard. Ikutilah seluruh langkah-langkah (step) yang diajukan oleh Wizard. Kemudian barulah Anda buka Recuva dengan cara klik opsi bertulisan “Next.”
  5. Jika sudah, Recuva bisa memberikan pilihan soal tipe file yang Anda mau kembalikan, Coba Anda klik opsi bertulisan “All Files”. Nah jika Anda pilih opsi itu maka Anda bisa kembalikan semua jenis file, mulai dari email, foto, video, dan semua jenis yang lain-lainnya.
  6. Klik opsi bertulisan “Next”.
  7. Pada langkah berikutnya, Recuva akan meminta lokasi atau tempat penyimpanan file hilang yang Anda cari. Jika memang Anda lupa, Anda pilih opsi “I am not sure.” Namun, jika Anda ingat tempat penyimpanan sebelumnya, klik opsi “In a specific location” kemudian browse tempat file yang hilang itu. Setelahnya, klik lagi “Next.”
  8. Klik “Start” dan tunggu proses instalasinya yang sedang berlangsung.
  9. Akan muncul menu “Welcome to the Recuva Wizard”, program ini akan membujuk Anda untuk menginstall aplikasi lain bernama CCleaner. Jika memang tidak butuh dan tidak mau install CCleaner atau aplikasi lainnya yang ditawarkan itu, hapus saja semua centang pada kolom yang di menu.
  10. Sekarang coba buka Recuva Wizard dari komputer Anda, lalu pilih jenis file apa yang mau Anda kembalikan nantinya, apakah itu file berupa gambar atau video atau lainnya. Lalu klik “Next”.
  11. Sekarang coba tentukan tempat penyimpanan file yang terhapus itu supaya Anda bisa mempercepat proses pencarian file hilang yang Anda cari.
  12. Kalau sudah yakin tempatnya klik “Next”. Kalau tidak coba klik “I’m Not Sure”. Ini bisa bantu Recuva dalam menyortir file di seluruh lokasi komputer walau ya memang  perlu waktu yang cukup lama.
  13. Untuk memulai proses pencariannya, coba centang di kolom sebelah opsi bertulisan “Enable Deep Scan”, dan klik “Start”. Di sini bakal makan waktu lebih lama lagi, tapi Anda harus bersabar supaya file Anda bisa dicari oleh Recuva.
  14. Kalau sudah muncul semua hasil sortir, pilih saja langsung file mana yang ingin Anda kembalikan. Caranya centang kolom di file-file yang mau dikembalikan. Terakhir coba klik kanan dan pilih opsi bertulisan “Recover Highlited”, akhiri dengan klik opsi bertulisan “Recover”.

Simpulan

Dengan membaca artikel ini, Anda jadi mengetahui bagaimana cara mengembalikan file yang terhapus di komputer Anda. Apakah Anda terbantu? Sampaikan pertanyaan di kolom komentar jika Anda mengalami kendala.
Sebagai provider hosting berkualitas di Indonesia, kami berkomitmen untuk membantu Anda sukses secara online, seperti Berlitz di video Dewaweb berikut  ini:

Di era digital ini, ada banyak sekali cara yang bisa Anda lakukan untuk sukses mengembangkan bisnis, terutama melalui website. Jangan ragu untuk subscribe email dan mendapatkan konten-konten bermanfaat kami lainnya. Selamat berusaha ya, semoga berhasil!
spacer

Penjelasan Uniform Resource Locator (URL)

 
Hasil gambar untuk Uniform resource locator (URL)Sebuah uniform resource locator, disingkat URL, juga dikenal sebagai alamat web, adalah spesifik karakter string yang merupakan referensi ke sumber daya. Dalam kebanyakan browser web , URL dari halaman web ditampilkan di atas dalam sebuah address bar . Sebuah contoh dari URL khas akan "http://en.example.org/wiki/Main_Page". Sebuah URL secara teknis jenis uniform resource identifier (URI), tetapi dalam banyak dokumen teknis dan diskusi verbal, URL sering digunakan sebagai sinonim untuk URI, dan ini tidak dianggap masalah.

 
Sejarah
The Uniform Resource Locator adalah standar pada tahun 1994 oleh Tim Berners-Lee dan kelompok kerja URI dari Internet Engineering Task Force (IETF) sebagai hasil dari kolaborasi dimulai pada Dokumen IETF Living "Burung Feather sebuah" sesi pada tahun 1992. Format ini menggabungkan sistem pra-ada nama domain (diciptakan pada tahun 1985) dengan path file sintaks, di mana garis miring digunakan untuk memisahkan direktori dan berkas nama. Konvensi sudah ada di mana nama server bisa prepended untuk menyelesaikan path file, didahului oleh dua garis miring (/ /).

Berners-Lee kemudian menyesali penggunaan titik untuk memisahkan bagian-bagian dari nama domain dalam URI , berharap dia telah menggunakan garis miring seluruh. Sebagai contoh, http://www.example.com/path/to/name akan telah ditulis http:com/example/www/path/to/name. Berners-Lee juga mengatakan bahwa, mengingat usus mengikuti skema URI , dua garis miring sebelum nama domain juga tidak perlu.

Sintaks
Setiap URL terdiri dari:
- dengan nama skema (biasa disebut protocol), maka
- usus, dua garis miring, kemudian
- host, biasanya diberikan sebagai nama domain  tapi kadang-kadang sebagai literal alamat IP , maka
- opsional nomor port , maka
- path lengkap dari sumber daya

Skema ini mengatakan bagaimana menghubungkan, host menentukan di mana untuk menghubungkan, dan sisanya menentukan apa yang harus meminta.

Untuk program-program seperti Common Gateway Interface (CGI) script , ini diikuti oleh string kueri ,  dan opsional fragmen identifier .
Perintahnya adalah:
skema :/ / domain:? pelabuhan / path QUERY_STRING # fragment_id
- Nama skema mendefinisikan namespace, tujuan, dan sintaks dari sisa bagian dari URL. Software akan mencoba untuk memproses URL sesuai dengan skema dan konteks. Sebagai contoh, sebuah web browser biasanya akan dereference URL http://example.org:80  dengan melakukan HTTP request ke host di example.org, menggunakan nomor port 80. URL mailto: bob@example.com dapat memulai e-mail komposer dengan alamat bob@example.com di kolom Ke.
Contoh lain dari nama skema termasuk https , gopher , wais , ftp . URL dengan https sebagai skema (seperti https://example.com/) mengharuskan permintaan dan tanggapan akan dilakukan melalui koneksi yang aman ke situs web. Beberapa skema yang memerlukan otentikasi memungkinkan nama pengguna, kata sandi dan mungkin juga, untuk dimasukkan dalam URL, misalnya  ftp://asmith @ ftp.example.org.  Sandi tertanam dengan cara ini tidak kondusif untuk keamanan, tapi mungkin sintaks penuh  
skema :/ / username: password @ domain:? pelabuhan / path QUERY_STRING # fragment_idN
- Nama domain atau alamat IP numerik literal memberikan lokasi tujuan untuk URL. Sebuah alamat IPv6 numerik literal dapat diberikan, namun harus diapit [] misalnya [db8: 0cec :: 99:123 a].
- Domain google.com, atau IP address numerik 72.14.207.99, adalah alamat website Google.
domain name sebagian dari URL tidak peka karena DNS mengabaikan kasus:
http://en.example.org/ dan HTTP :/ / EN.EXAMPLE.ORG /  baik membuka halaman yang sama.
- Nomor port, diberikan dalam desimal, adalah opsional, jika dihilangkan, default untuk skema yang digunakan.
Misalnya, http://vnc.example.com:5800 terhubung ke port 5800 dari vnc.example.com, yang mungkin sesuai untuk VNC sesi remote control. Jika nomor port dihilangkan untuk http:URL, browser akan terhubung pada port 80, port HTTP default. Port default untuk https:request adalah 443.
- Jalan ini digunakan untuk menentukan dan mungkin menemukan sumber daya yang diminta. Ini adalah case-sensitive,  meskipun mungkin diperlakukan sebagai case-sensitive oleh beberapa server, terutama yang berbasis pada Microsoft Windows .
Jika server adalah kasus sensitif dan  http://en.example.org/wiki/URL benar, maka http://en.example.org/WIKI/URL atau http://en.example.org/wiki/ url akan menampilkan HTTP 404 halaman kesalahan, kecuali URL tersebut mengarah ke sumber yang valid sendiri.
- String kueri berisi data yang akan diteruskan ke perangkat lunak yang berjalan pada server . Ini mungkin berisi pasangan nama / nilai dipisahkan oleh ampersands, misalnya
? First_name = Qowiyyul Bushomi & last_name =.
- Fragmen identifier , jika ada, menentukan bagian atau posisi dalam sumber daya secara keseluruhan atau dokumen.
Bila digunakan dengan HTML, biasanya menentukan bagian atau lokasi di dalam halaman, dan digunakan dalam kombinasi dengan Jangkar Tags browser menggulir untuk menampilkan bagian halaman.
spacer

Penggertian Internet Relay Chat (IRC)

Internet Relay Chat (IRC) adalah protokol untuk live interaktif Internet pesan teks ( chatting ) atau konferensi sinkron . Hal ini terutama dirancang untuk komunikasi kelompok di forum diskusi, yang disebut saluran , tetapi juga memungkinkan satu-ke-satu komunikasi melalui pesan pribadi [3] serta chatting dan transfer data , termasuk file sharing .

IRC diciptakan pada tahun 1988. Perangkat lunak klien yang tersedia untuk setiap sistem operasi utama yang mendukung akses Internet. Pada April 2011, atas 100 jaringan IRC melayani lebih dari setengah juta pengguna pada satu waktu,  dengan ratusan ribuan saluran yang beroperasi di total sekitar 1.500 server dari sekitar 3.200 server di seluruh dunia.

IRC merupakan open protocol yang menggunakan TCP [1] dan, opsional, TLS . Sebuah Server IRC dapat terhubung ke server IRC lainnya untuk memperluas jaringan IRC. Pengguna mengakses jaringan IRC dengan menghubungkan klien ke server. Ada banyak implementasi klien, seperti mIRC , XChat dan irssi , dan implementasi server , misalnya asli IRCd . Kebanyakan server IRC tidak mengharuskan pengguna untuk mendaftarkan akun namun pengguna harus menetapkan nickname sebelum terhubung.

IRC awalnya protokol teks biasa (meskipun kemudian diperpanjang), yang atas permintaan ditugaskan pelabuhan 194/TCP oleh IANA . Namun, standar de facto selalu untuk menjalankan IRC pada 6667/TCP  dan nomor port di dekatnya (misalnya untuk port TCP 6660-6669, 7000) untuk menghindari harus menjalankan IRCd lunak dengan hak akses root .

Protokol menetapkan bahwa karakter adalah 8-bit tapi tidak menentukan karakter encoding teks yang seharusnya digunakan. Hal ini dapat menyebabkan masalah ketika pengguna menggunakan klien yang berbeda dan / atau platform yang berbeda ingin berkomunikasi.

Semua protokol IRC client-server yang digunakan saat ini adalah keturunan dari protokol diimplementasikan dalam versi irc2.4.0 dari server IRC2, dan didokumentasikan dalam RFC 1459 . Sejak RFC 1459 diterbitkan, fitur-fitur baru dalam pelaksanaan irc2.10 menyebabkan publikasi beberapa dokumen protokol direvisi ( RFC 2810 , RFC 2811 , RFC 2812 dan RFC 2813 ), namun, perubahan protokol ini belum diadopsi secara luas antara lain implementasi.

Meskipun banyak spesifikasi pada protokol IRC telah diterbitkan, tidak ada spesifikasi resmi, sebagai protokol tetap dinamis. Hampir tidak ada klien dan server sangat sedikit mengandalkan ketat pada RFC di atas sebagai referensi.

Microsoft membuat sebuah ekstensi untuk IRC pada tahun 1998 melalui kepemilikan IRCX . Mereka kemudian berhenti mendistribusikan software pendukung IRCX, bukan mengembangkan proprietary MSNP.

Struktur standar dari jaringan server IRC adalah tree . Pesan akan diarahkan sepanjang diperlukan hanya cabang dari pohon tapi negara jaringan dikirimkan ke setiap server yang  dan umumnya tingkat kepercayaan yang tinggi implisit antara server. Arsitektur ini memiliki sejumlah masalah. Sebuah nakal atau server berbahaya dapat menyebabkan kerusakan besar ke jaringan dan setiap perubahan struktur, baik disengaja atau akibat dari kondisi di jaringan yang mendasarinya, memerlukan net-split dan net-join. Hal ini menghasilkan banyak lalu lintas jaringan dan palsu berhenti / join pesan kepada pengguna  dan kerugian sementara komunikasi untuk pengguna di server membelah. Menambahkan server untuk jaringan besar berarti beban bandwidth yang besar latar belakang pada jaringan dan beban memory yang besar pada server. Setelah didirikan Namun, setiap pesan ke beberapa penerima disampaikan dalam cara yang mirip dengan multicast , yang berarti setiap pesan perjalanan link jaringan tepat satu kali. Ini adalah kekuatan dibandingkan dengan protokol non-multicasting seperti Simple Mail Transfer Protocol (SMTP ) atau Extensible Messaging dan Presence Protocol (XMPP).

Perintah dan balasan
IRC memiliki struktur berbasis-line dengan klien mengirimkan pesan single-line ke server,  menerima balasan untuk pesan-pesan dan menerima salinan dari beberapa pesan yang dikirim oleh klien lain. Dalam kebanyakan klien pengguna dapat memasukkan perintah dengan awalan mereka dengan '/'. Tergantung pada perintah, ini baik dapat ditangani sepenuhnya oleh klien, atau (umumnya untuk perintah klien tidak mengakui) dikirimkan secara langsung ke server, mungkin dengan beberapa modifikasi.

Karena sifat dari protokol, sistem otomatis tidak bisa selalu benar memasangkan perintah dikirim dengan balasan dengan keandalan penuh dan tunduk pada menebak-nebak.

Channels
Sarana dasar berkomunikasi ke sekelompok pengguna dalam sebuah sesi IRC didirikan adalah melalui saluran . Saluran di jaringan dapat ditampilkan dengan menggunakan perintah LIST IRC,  yang berisi daftar saluran semua saat ini tersedia yang tidak memiliki mode + s atau + p set, pada jaringan tertentu.

Pengguna dapat bergabung dengan saluran yang menggunakan perintah JOIN, di kebanyakan klien tersedia sebagai / join # channelname. Pesan yang dikirim ke saluran bergabung kemudian diteruskan ke semua pengguna lain.

Saluran yang tersedia di seluruh jaringan IRC seluruh diawali dengan '#', sementara mereka lokal ke server menggunakan '&'.  Lain jenis saluran yang kurang umum termasuk '+' saluran-saluran 'modeless' tanpa operator dan '!' saluran, suatu bentuk timestamped saluran pada jaringan normal non-timestamped.

Mode
Pengguna dan saluran mungkin memiliki mode yang diwakili oleh huruf case-sensitive tunggal  dan diatur dengan menggunakan perintah MODE. mode pengguna dan mode channel yang terpisah dan dapat menggunakan huruf yang sama berarti hal yang berbeda (misalnya usermode " i "adalah mode invisible sementara channelmode" i "hanya mengundang). Mode biasanya ditetapkan dan diset menggunakan perintah modus yang mengambil target (user atau channel), satu set mode untuk mengatur (+) atau unset ( -) dan setiap parameter mode butuhkan.

Beberapa tapi tidak semua mode channel mengambil parameter dan beberapa mode saluran berlaku untuk pengguna pada saluran atau menambah atau menghapus masker (misalnya masker larangan) dari daftar yang terkait dengan saluran daripada menerapkan ke saluran secara keseluruhan.  Mode yang berlaku untuk pengguna di saluran memiliki simbol yang terkait yang digunakan untuk mewakili mode dalam nama balasan (dikirim ke klien pada pertama bergabung saluran  dan penggunaan nama perintah) dan dalam banyak klien juga digunakan untuk mewakili dalam daftar yang ditampilkan klien pengguna dalam saluran atau untuk menampilkan indikator sendiri untuk mode pengguna.

Dalam rangka untuk benar mengurai pesan modus masuk dan melacak negara saluran klien harus tahu modus yang yang jenis dan mode yang berlaku untuk pengguna pada saluran yang simbol yang berjalan dengan surat. Dalam implementasi awal dari IRC ini harus keras-kode di klien tapi sekarang ada ekstensi standar de facto protokol yang disebut ISUPPORT yang mengirimkan informasi ini kepada klien pada saat connect menggunakan numerik 005.
Ada kesalahan desain kecil di IRC mengenai mode yang berlaku untuk pengguna pada saluran: pesan nama yang digunakan untuk mendirikan negara saluran awal hanya dapat mengirim satu modus seperti per pengguna pada saluran, tetapi beberapa mode tersebut dapat diatur pada single user. Misalnya, jika pengguna memegang kedua status operator (+ o) dan status voice (+ v) pada saluran, klien baru akan dapat mengetahui modus kurang precedented (voice). Workarounds untuk ini yang mungkin pada kedua klien dan sisi server tetapi tidak secara luas diterapkan.

Operator saluran
Channel Operator adalah klien pada channel IRC yang mengelola saluran. Kanal IRC Operator dapat dengan mudah dilihat oleh simbol "@", atau surat Latin "+ o" / "o". Pada sebagian besar jaringan, operator dapat:
- Menendang pengguna
- Ban user
- Memberikan pengguna lainnya Kanal IRC Operator Status atau Status IRC Kanal Voice.
- Mengubah topik IRC Channel.
- Mengubah kunci IRC Channel Mode.

IRC Operators
Ada juga pengguna yang mempertahankan hak tinggi di server lokal mereka, atau seluruh jaringan; ini disebut operator IRC,  terkadang disingkat menjadi IRCOps atau opers (tidak harus bingung dengan operator channel). Sebagai implementasi dari IRCd bervariasi, begitu juga hak-hak istimewa dari operator IRC pada diberikan IRCd. RFC 1459 mengklaim bahwa operator IRC adalah "kejahatan yang diperlukan" untuk menjaga keadaan bersih dari jaringan, dan dengan demikian mereka perlu dapat melepaskan dan menyambungkan kembali server. Selain itu, untuk mencegah pengguna berbahaya atau program otomatis bahkan berbahaya masuk IRC, IRC operator biasanya diperbolehkan untuk memutuskan klien dan sepenuhnya melarang IP atau subnet lengkap. Jaringan yang membawa layanan (Nickserv et al.) Biasanya memudahkan operator IRC mereka juga untuk menangani dasar "Kepemilikan" hal. Hak lebih lanjut istimewa dapat mencakup larangan saluran utama (bisa bergabung dengan saluran mereka tidak akan diizinkan untuk bergabung, jika mereka tidak opered), mampu op diri pada saluran di mana mereka tidak akan mampu tanpa opered, menjadi auto-@ op pada saluran selalu dan sebagainya.
spacer

Debugger or Debuggong Tool

Hasil gambar untuk debugger 
Sebuah debugger atau debugging tool adalah program komputer yang digunakan untuk menguji dan men-debug program lain (program "target"). Kode untuk diperiksa mungkin alternatif dapat berjalan pada instruksi set simulator (ISS) , sebuah teknik yang memungkinkan kekuatan besar dalam kemampuannya untuk menghentikan ketika kondisi tertentu yang dihadapi tetapi biasanya akan sedikit lebih lambat dari mengeksekusi kode secara langsung pada yang sesuai ( atau sama) prosesor. Beberapa debugger menawarkan dua mode operasi-penuh atau parsial simulasi-untuk membatasi dampak ini.

" kecelakaan "yang terjadi ketika program tidak bisa biasanya berlanjut karena bug pemrograman . Sebagai contoh, program ini mungkin telah mencoba untuk menggunakan instruksi tidak tersedia pada versi saat ini dari CPU atau mencoba untuk mengakses tersedia atau dilindungi memori . Ketika program "crash" atau mencapai kondisi preset, debugger biasanya menunjukkan lokasi dalam kode asli jika sumber-level debugger atau debugger simbolik, biasanya sekarang terlihat di lingkungan pengembangan terintegrasi . Jika itu adalah tingkat rendah debugger atau debugger mesin-bahasa itu menunjukkan garis dalam pembongkaran (kecuali juga memiliki akses online ke kode sumber asli dan dapat menampilkan bagian yang sesuai kode dari perakitan atau kompilasi).


Biasanya, debugger menawarkan prosesor query, simbol penyelesai, ekspresi interpreter, dan dukungan men-debug antarmuka di tingkat atas. Debugger juga menawarkan fungsi yang lebih canggih seperti menjalankan program langkah demi langkah (single-loncatan atau program animasi ), menghentikan (melanggar) (berhenti program untuk memeriksa keadaan saat ini) pada beberapa peristiwa atau instruksi tertentu melalui suatu breakpoint , dan melacak nilai-nilai variabel. Beberapa debugger memiliki kemampuan untuk memodifikasi program negara ketika sedang berjalan. Hal ini juga mungkin untuk melanjutkan eksekusi di lokasi yang berbeda dalam program untuk memotong kecelakaan atau kesalahan logis.

Fungsi yang sama yang membuat debugger berguna untuk menghilangkan bug memungkinkan untuk digunakan sebagai perangkat lunak retak alat untuk menghindari perlindungan salinan , manajemen hak digital, dan fitur perlindungan perangkat lunak lain. Sering juga membuatnya berguna sebagai alat verifikasi umum, cakupan kesalahan , dan kinerja analyzer , terutama jika panjang instruksi jalur yang akan ditampilkan.

Kebanyakan mesin debugging mainstream, seperti gdb dan dbx , menyediakan berbasis konsol antarmuka baris perintah . Debugger depan berakhir ekstensi populer untuk debugger mesin yang menyediakan IDE integrasi, program animasi , dan fitur visualisasi. Beberapa awal mainframe debugger seperti Oliver dan SIMON disediakan fungsi yang sama ini untuk IBM System/360 dan sistem operasi kemudian, selama lalu sebagai tahun 1970-an.

Reverse debugging
Beberapa debugger mencakup fitur yang disebut "debugging terbalik", juga dikenal sebagai "debugging sejarah" atau "mundur debugging". Debugger ini memungkinkan untuk langkah eksekusi sebuah program mundur dalam waktu. Berbagai debugger menyertakan fitur ini. Visual Studio Ultimate Edition debugger (2010 dan atas) menawarkan debugging terbalik untuk C #, Visual Basic. NET, dan beberapa bahasa lain, tapi tidak C + +. Debugger lain dengan fitur termasuk gdb 7.0 dan atas, " Mahatahu Debugger "untuk Java, dan berbagai [4] dari debugger lainnya. Reverse debugging sangat berguna untuk beberapa jenis masalah, tapi masih belum umum digunakan belum.

Ketergantungan Bahasa
Beberapa debugger beroperasi pada bahasa tertentu tunggal sementara yang lain dapat menangani beberapa bahasa secara transparan. Sebagai contoh jika program sasaran utama ditulis dalam COBOL tetapi panggilan bahasa assembly subrutin dan PL / 1 subrutin, debugger mungkin harus dinamis beralih mode untuk mengakomodasi perubahan dalam bahasa yang terjadi.

Perlindungan memori
Beberapa debugger juga menggabungkan perlindungan memori untuk menghindari pelanggaran penyimpanan seperti buffer overflow . Hal ini mungkin sangat penting dalam proses transaksi lingkungan dimana memori dinamis dialokasikan dari memori 'kolam' pada tugas dengan dasar tugas.

Dukungan hardware untuk debugging
Kebanyakan mikroprosesor modern memiliki setidaknya satu dari fitur ini di mereka desain CPU untuk membuat debugging lebih mudah:
dukungan hardware untuk single-melangkah program, seperti bendera perangkap .
Sebuah set instruksi yang memenuhi persyaratan virtualisasi Goldberg Popek dan membuatnya lebih mudah untuk menulis perangkat lunak debugger yang berjalan pada CPU yang sama sebagai perangkat lunak yang sedang debugged, CPU tersebut dapat menjalankan loop dalam program yang diuji dengan kecepatan penuh, dan masih tetap di bawah kontrol debugger.
In-System Programming memungkinkan debugger hardware eksternal untuk memprogram ulang sistem yang diuji (misalnya, menambahkan atau menghapus instruksi breakpoints). Banyak sistem dengan dukungan ISP tersebut juga memiliki dukungan debug hardware lainnya.
Dukungan hardware untuk kode dan data breakpoints , seperti alamat pembanding dan data nilai pembanding atau, dengan jauh lebih banyak pekerjaan yang terlibat, halaman kesalahan hardware. 
JTAG akses ke interface debug hardware seperti pada arsitektur ARM prosesor atau menggunakan Nexus perintah set. Prosesor yang digunakan dalam embedded system biasanya memiliki dukungan JTAG men-debug luas.
Microcontrollers dengan sesedikit enam pin perlu menggunakan pengganti pin-hitungan rendah untuk JTAG, seperti BDM , Spy-Bi-Wire , atau debugWIRE pada Atmel AVR . DebugWIRE, misalnya, menggunakan sinyal dua arah pada pin RESET
spacer

Softwere Bug (Pemrograman Komputer)

 Hasil gambar untuk software bug
Sebuah bug perangkat lunak adalah sebuah kesalahan, cacat, kegagalan , atau kesalahan dalam sebuah program komputer atau sistem yang menyebabkan untuk menghasilkan hasil yang salah atau tidak terduga, atau untuk berperilaku dengan cara yang tidak diinginkan. Kebanyakan bug timbul dari kesalahan dan kesalahan yang dilakukan oleh orang-orang di salah satu program kode sumber atau perusahaan desain , atau dalam kerangka kerja dan sistem operasi yang digunakan oleh program-program tersebut, dan beberapa disebabkan oleh compiler menghasilkan kode yang salah. Sebuah program yang berisi sejumlah besar bug, dan / atau bug yang serius mengganggu fungsinya, dikatakan buggy. Laporan merinci bug dalam sebuah program yang dikenal sebagai laporan bug, laporan cacat, laporan kesalahan, laporan masalah, laporan masalah, permintaan perubahan, dan sebagainya.

Bugs memicu kesalahan yang pada gilirannya dapat memiliki berbagai efek riak , dengan berbagai tingkat ketidaknyamanan kepada pengguna program. Beberapa bug hanya memiliki efek halus pada fungsi program, dan dengan demikian dapat berbohong terdeteksi untuk waktu yang lama. Bug lebih serius dapat menyebabkan program untuk kecelakaan atau membekukan . Lainnya memenuhi syarat sebagai bug keamanan dan kekuatan misalnya memungkinkan pengguna jahat untuk melewati kontrol akses untuk mendapatkan hak sah .


Hasil bug mungkin sangat serius. Bug di kode mengendalikan Therac-25 terapi radiasi mesin yang langsung bertanggung jawab atas beberapa kematian pasien pada 1980-an. Pada tahun 1996, European Space Agency 's US $ 1 miliar prototipe Ariane 5 roket hancur kurang dari satu menit setelah peluncuran, karena bug dalam program komputer bimbingan on-board. Pada Juni 1994, Royal Air Force Chinook jatuh ke dalam Mull Rhapsody , menewaskan 29. Ini awalnya dianggap sebagai kesalahan pilot, namun investigasi oleh Komputer Weekly menemukan bukti yang cukup untuk meyakinkan House of Lords penyelidikan yang mungkin telah disebabkan oleh bug perangkat lunak dalam pesawat kontrol mesin komputer .

Pada tahun 2002, sebuah studi yang dilakukan oleh US Department of Commerce ' Institut Nasional Standar dan Teknologi menyimpulkan bahwa "software bug, atau kesalahan, begitu umum dan begitu merugikan bahwa mereka biaya ekonomi AS diperkirakan $ 59000000000 per tahun, atau sekitar 0,6 persen dari produk domestik bruto ".

Penggunaan istilah "bug" untuk menggambarkan cacat dijelaskan telah menjadi bagian dari rekayasa jargon selama beberapa dekade dan mendahului komputer dan perangkat lunak komputer, tetapi mungkin pada awalnya telah digunakan dalam rekayasa hardware untuk menggambarkan kerusakan mekanik. Sebagai contoh, Thomas Edison menulis kata-kata berikut dalam sebuah surat kepada seorang rekan pada tahun 1878:

Sudah begitu di semua penemuan saya. Langkah pertama adalah intuisi, dan dilengkapi dengan burst, maka kesulitan timbul - hal ini memberikan keluar dan kemudian bahwa "Bugs" - sebagai kesalahan kecil tersebut dan kesulitan disebut - menunjukkan diri mereka sendiri dan menonton bulan intens, studi dan tenaga kerja yang diperlukan sebelum keberhasilan komersial atau kegagalan tentu tercapai.

Sebuah halaman dari Harvard Mark II log elektromekanis komputer, menampilkan ngengat mati yang telah dihapus dari perangkat. Istilah "bug" digunakan dalam account dengan pelopor komputer Grace Hopper ., yang dipublikasikan 

penyebab kerusakan di komputer elektromekanis awal Sebuah versi khas cerita diberikan oleh kutipan ini:
Pada tahun 1946, ketika Hopper dibebaskan dari tugas aktif, ia bergabung dengan Fakultas Harvard di Laboratorium Komputasi di mana ia melanjutkan pekerjaannya pada Mark II dan Mark III . Operator ditelusuri kesalahan dalam Mark II ke ngengat terjebak dalam sebuah relay, disebut dengan bug. Bug ini dengan hati-hati dilepas dan ditempel ke buku log. Berasal dari bug pertama, hari ini kita sebut kesalahan atau kesalahan yang dalam program bug.

Hopper itu tidak benar-benar orang yang menemukan serangga, saat ia siap mengakui. Tanggal dalam buku log adalah September 9, 1947, meskipun kadang-kadang keliru dilaporkan sebagai 1945. Operator yang menemukan itu, termasuk William "Bill" Burke, kemudian dari Naval Weapons Laboratory , Dahlgren , Virginia , yang akrab dengan istilah teknik dan, geli, terus serangga dengan notasi "Pertama kasus aktual bug yang ditemukan." Hopper senang menceritakan cerita.  Buku ini log, lengkap dengan dilampirkan ngengat, merupakan bagian dari koleksi Smithsonian National Museum of American History , meskipun tidak saat ini dipamerkan.

Meskipun dipastikan bahwa operator Harvard Mark II tidak koin istilah "bug", telah diusulkan bahwa insiden itu memberikan kontribusi terhadap meluasnya penggunaan dan penerimaan dari istilah dalam leksikon perangkat lunak komputer. Istilah terkait " men-debug "juga muncul untuk mendahului penggunaannya dalam komputasi: the Oxford English Dictionary etimologi 's kata berisi pengesahan dari tahun 1945, dalam konteks mesin pesawat

Bagaimana bug masuk ke software
Dalam proyek-proyek pengembangan perangkat lunak, sebuah "kesalahan" atau "kesalahan" dapat diperkenalkan pada setiap tahap selama pengembangan. Bugs adalah konsekuensi dari sifat faktor manusia dalam tugas pemrograman. Mereka muncul dari kelalaian atau reksa kesalahpahaman yang dibuat oleh tim software selama spesifikasi, desain, coding, entri data dan dokumentasi. Sebagai contoh, dalam menciptakan suatu program yang relatif sederhana untuk mengurutkan daftar kata ke dalam urutan abjad, desain seseorang mungkin gagal untuk mempertimbangkan apa yang harus terjadi ketika kata berisi tanda hubung . Mungkin, ketika mengubah desain abstrak ke dalam bahasa pemrograman yang dipilih, seseorang mungkin secara tidak sengaja membuat off-per-satu kesalahan dan gagal untuk mengurutkan kata terakhir dalam daftar. Akhirnya, saat mengetik program yang dihasilkan ke dalam komputer, yang mungkin sengaja mengetik "<" di mana ">" dimaksudkan, mungkin menyebabkan kata-kata yang diurutkan ke dalam urutan abjad terbalik. Kategori lain dari bug disebut race condition .

Bug lebih kompleks dapat timbul dari interaksi yang tidak diinginkan antara bagian-bagian berbeda dari sebuah program komputer. Hal ini sering terjadi karena program komputer dapat menjadi kompleks - jutaan baris panjang dalam beberapa kasus - sering yang telah diprogram oleh banyak orang lebih panjang besar waktu, sehingga programmer tidak dapat melacak secara mental setiap cara yang mungkin di mana bagian dapat berinteraksi.

Pencegahan
Industri perangkat lunak telah menempatkan banyak usaha dalam menemukan metode untuk mencegah programmer dari secara tidak sengaja memperkenalkan bug saat menulis perangkat lunak. Ini termasuk:

Gaya pemrograman
Sementara kesalahan ketik dalam kode program sering tertangkap oleh kompilator, bug biasanya muncul ketika programmer membuat kesalahan logika . Berbagai inovasi dalam gaya pemrograman dan pemrograman defensif dirancang untuk membuat bug ini kurang mungkin, atau lebih mudah untuk spot. Dalam beberapa bahasa pemrograman, disebut kesalahan ketik, terutama dari simbol atau logis / operator matematika , benar-benar mewakili kesalahan logika, karena konstruksi mistyped diterima oleh compiler dengan arti lain selain apa yang programmer dimaksudkan.

Teknik pemrograman
Bugs sering membuat inkonsistensi dalam data internal dari program berjalan. Program dapat ditulis untuk memeriksa konsistensi data internal mereka sendiri sambil berjalan. Jika ketidakkonsistenan ditemui, program ini dapat segera menghentikan, sehingga bug dapat ditemukan dan diperbaiki. Atau, program ini hanya dapat menginformasikan pengguna, berusaha untuk memperbaiki ketidakkonsistenan, dan terus berjalan.

Metodologi pengembangan
Ada beberapa skema untuk mengelola aktivitas programmer, sehingga lebih sedikit bug yang dihasilkan. Banyak dari ini jatuh di bawah disiplin rekayasa perangkat lunak (yang membahas masalah-masalah desain perangkat lunak juga). Sebagai contoh, resmi spesifikasi program yang digunakan untuk menyatakan perilaku yang tepat dari program, sehingga desain bug dapat dihilangkan. Sayangnya, spesifikasi formal tidak praktis atau tidak mungkin untuk apa pun kecuali program terpendek, karena masalah ledakan kombinatorial dan ketidakpastian.

Di zaman modern, pendekatan yang populer meliputi otomatis unit testing dan otomatis pengujian penerimaan (kadang-kadang pergi ke ekstrim pengembangan uji-driven ), dan pengembangan perangkat lunak tangkas (yang sering dikombinasikan dengan , atau bahkan dalam beberapa kasus mandat , pengujian otomatis). Semua pendekatan ini seharusnya menangkap bug dan buruk ditentukan persyaratan segera setelah mereka diperkenalkan, yang seharusnya membuat mereka lebih mudah dan lebih murah untuk memperbaiki, dan untuk menangkap setidaknya beberapa dari mereka sebelum mereka masuk ke dalam penggunaan produksi.

Dukungan bahasa pemrograman
Bahasa pemrograman sering termasuk fitur yang membantu programmer mencegah bug, seperti statis sistem jenis , dibatasi ruang nama dan pemrograman modular , antara lain. Sebagai contoh, ketika seorang programmer menulis (pseudocode) LET REAL_VALUE PI = "THREE AND A BIT" , meskipun ini mungkin sintaksis benar, kode gagal suatu jenis cek . Tergantung pada bahasa dan implementasi, hal ini dapat ditangkap oleh kompilator atau run-time . Selain itu, banyak bahasa baru-baru ini ditemukan telah sengaja dikecualikan fitur yang dapat dengan mudah menyebabkan bug, dengan mengorbankan membuat kode lebih lambat daripada perlu menjadi: prinsip umum adalah bahwa, karena hukum Moore , komputer bisa lebih cepat dan insinyur perangkat lunak mendapatkan lebih lambat; hampir selalu lebih baik untuk menulis sederhana, kode lebih lambat dari "pintar", kode ditebak, terutama mengingat bahwa biaya pemeliharaan cukup besar. Sebagai contoh, bahasa pemrograman Java tidak mendukung pointer aritmatika, implementasi beberapa bahasa seperti Pascal dan bahasa scripting sering memiliki runtime batas memeriksa array, setidaknya dalam debugging membangun.

Analisis kode
Alat untuk analisis kode membantu pengembang dengan memeriksa teks program luar kemampuan compiler untuk menemukan masalah potensial. Meskipun secara umum masalah menemukan semua kesalahan pemrograman diberikan spesifikasi tidak dipecahkan (lihat masalah terputus-putus ), alat ini memanfaatkan fakta bahwa programmer manusia cenderung membuat jenis yang sama kesalahan saat menulis perangkat lunak.

Instrumentasi
Alat untuk memantau kinerja perangkat lunak seperti yang berjalan, baik secara khusus untuk menemukan masalah seperti kemacetan atau untuk memberikan kepastian untuk memperbaiki kerja, dapat tertanam dalam kode eksplisit (mungkin sesederhana pernyataan yang mengatakan PRINT "I AM HERE" ), atau disediakan sebagai alat. Hal ini sering kejutan untuk menemukan di mana sebagian besar waktu diambil oleh sepotong kode, dan penghapusan ini asumsi dapat menyebabkan kode yang akan ditulis ulang.
spacer