Perbedaan antara kode semu dan algoritma?

17

Secara teknis, Apakah ada perbedaan antara dua kata ini atau dapatkah kita menggunakannya secara bergantian? Keduanya kurang lebih menggambarkan urutan logis langkah-langkah yang mengikuti dalam menyelesaikan suatu masalah. bukan? JADI, mengapa kita benar-benar menggunakan dua kata seperti itu jika mereka dimaksudkan untuk membicarakan hal yang sama?

Atau, Seandainya kata-kata itu tidak bersinonim, Apa yang membedakannya? Dalam konteks apa kita seharusnya menggunakan kata pseudo code vs the word algorithm?

Vamsi Emani
sumber
4
Algoritma adalah quicksort. Pseudocode adalah "Buatkan aku sandwich, lalu setelah dibuat, bawakan padaku."
Neil
Lihat jawaban ini ke pertanyaan lain. Di sana saya menggambarkan hubungan antara algoritma dan pseudocode.
Goran Jovic
3
Versi singkat: 'Kode semu adalah salah satu cara untuk merepresentasikan suatu algoritma'
Goran Jovic
3
@Neil atau bahkan SUDO membuatkan saya sandwich xkcd.com/149
StuperUser

Jawaban:

37

Definisi Wikipedia tentang Algoritma:

Dalam matematika dan ilmu komputer, suatu algoritma adalah metode yang efektif dinyatakan sebagai daftar terbatas dari instruksi yang didefinisikan dengan baik untuk menghitung suatu fungsi. Algoritma digunakan untuk perhitungan, pemrosesan data, dan penalaran otomatis.

Algoritma dapat dideskripsikan dengan berbagai cara, dari rumus matematika murni hingga grafik kompleks, lebih sering daripada tidak, tanpa pseudocode.

Pseudocode menjelaskan bagaimana Anda akan mengimplementasikan suatu algoritma tanpa masuk ke detail sintaksis.

Jadi tidak, mereka tidak benar-benar identik.

Demian Brecht
sumber
8

Sebuah algoritma adalah ide tentang bagaimana menulis kode. Kode semu adalah teks tertulis yang Anda butuhkan untuk mengomunikasikan gagasan itu.

DanC
sumber
Bagus! Pendek dan lurus. Tapi saya akan mengatakan "teks tertulis" daripada "teks tertulis". Bagaimana menurut anda?
Luciano
6

"Pseudocode" adalah "algoritma" karena "Bahasa Inggris" berarti "ketukan-ketukan".

Algoritme adalah struktur formal untuk sesuatu yang mungkin diekspresikan dalam pseudocode, atau dalam kode aktual .

Lelucon ketukan adalah struktur formal untuk sesuatu yang mungkin diungkapkan dalam bahasa Inggris, atau dalam bahasa lain. (Apakah budaya lain membuat lelucon ketukan? Saya bahkan tidak tahu.)

Dan Ray
sumber
Saya kira tidak. Setidaknya tidak ada yang serupa dalam bahasa Portugis tentang permainan ketukan itu. Jadi, saya akan mengatakan bahwa tidak ada juga dalam bahasa Roman lainnya seperti Spanyol dan Italia. Saya tidak akan memasukkan bahasa Prancis karena sudah lama berselingkuh dengan bahasa Inggris di kepulauan Inggris, dan saya tidak tahu bahasa Romawi lainnya seperti Rumania dan lainnya.
Luciano
3

Hanya ada satu algoritma quicksort, yang merupakan jenis hal yang akan ada di dunia ide murni Plato. Mungkin ada beberapa deskripsi kode pseudo-kode yang berbeda. Saya pikir saya akan mendefinisikan pseudo-code sebagai teks yang terlihat kira-kira seperti kode komputer, dan dapat diterjemahkan oleh programmer berpengalaman ke dalam kode komputer aktual tanpa harus membuat lompatan kreatif.

Jadi tidak, saya tidak akan menggunakan istilah secara bergantian.

PeterAllenWebb
sumber
2

Algoritme adalah pendekatan logis sistematis yang digunakan untuk menyelesaikan masalah di komputer sementara Pseudocode adalah pernyataan dalam bahasa Inggris biasa yang dapat diterjemahkan kemudian ke dalam bahasa pemrograman (program).

aloyce boniface
sumber
2

Algoritma adalah semantik sedangkan pseudo-code hanyalah sintaks dari komunikasi tentang pemecahan masalah. Ini berarti bahwa algoritma adalah cara aktual suatu masalah diselesaikan sementara pseudo-code hanyalah cara untuk mengekspresikannya.

Algoritma memiliki arti yang sama (semantik) jika Anda mengekspresikannya dengan cara apa pun (sintaksis) baik itu bahasa pemrograman C, kode semu atau bahasa Inggris.

m3th0dman
sumber
1

Kode semu yang saya pahami adalah perantara antara suatu algoritma dan program yang diimplementasikan. Anda dapat mendasarkan kode pseudo Anda pada suatu algoritma. Ini berisi langkah-langkah yang dapat ditransfer untuk diterapkan.

Algoritma di sisi lain menyiratkan logika keseluruhan. dalam langkah-langkah berurutan untuk memecahkan masalah. jika direpresentasikan secara diagram itu disebut diagram alir.

Beberapa mungkin merujuk ini sebagai kode pseudo menjadi istilah umum dalam pengembangan perangkat lunak bisnis di mana pengembang objek bisnis sisi klien menulis kode pseudo berdasarkan persyaratan. Ini diberikan kepada programmer / pengembang untuk diimplementasikan.

Algoritma Anda akan menemukan lebih umum dalam terminologi pemrograman seperti pemrograman sistem, pencarian, pengurutan, pada dasarnya di mana saja ada logika yang kompleks untuk diimplementasikan.

Aditya P
sumber
1

Meskipun pseudo-code tampaknya lebih dekat dengan kode daripada algoritma, dalam praktiknya, kode pseudo kurang formal dan itu adalah deskripsi tingkat yang lebih tinggi. Misalnya, Anda dapat menggambarkan komputer bermain catur sebagai kode pseudo seperti ini:

  • letakkan potongan awal di lokasi mereka
  • papan pamer
  • sementara game belum berakhir
    • bergerak dan papan display
    • meminta pengguna untuk pindah
    • membuat pengguna bergerak

Ya, ini pseudocode, akan membantu sebagai titik awal yang baik tetapi membahas banyak detail. Itu tidak memperhitungkan kesulitan implementasi dan variasi, tetapi manfaat terbesar adalah memungkinkan Anda untuk membuat konsep seluruh situasi tanpa harus menyelesaikan semua detail.

Anda dapat merevisinya, menambahkan satu tingkat lagi seperti:

  • letakkan potongan awal di lokasi mereka
  • papan pamer
  • sementara papan tidak skakmat atau menggambar
    • membuat daftar langkah hukum putih
    • pilih yang terbaik sesuai dengan beberapa kriteria
    • buat itu bergerak dan hitung papan yang dihasilkan
    • lihat apakah skakmat atau draw telah terjadi
    • papan display
    • membuat daftar langkah hukum hitam
    • meminta pengguna untuk langkah hukum untuk input
    • buat itu bergerak dan hitung papan yang dihasilkan
    • lihat apakah skakmat atau draw telah terjadi
    • papan display

Sekarang Anda dapat menulis kodesemu untuk setiap langkah utama seperti "buat daftar langkah hukum orang hitam", seperti:

  • untuk setiap bagian hitam
    • untuk jenis potongan di lokasi tertentu
      • membuat daftar lokasi yang memungkinkan berikutnya

Sekarang Anda dapat melihat kekuatan kodesemu benar-benar dalam kemampuannya untuk menunjukkan seluruh situasi dalam sekali jalan dan kemudian memungkinkan Anda untuk membahas perincian sepotong demi sepotong. Kelemahannya adalah bahwa setiap langkah bukanlah langkah sederhana yang pasti.

Algoritma biasanya mengambil salah satu dari langkah-langkah ini dan merinci berbagai struktur data dalam bahasa simbolis sehingga Anda dapat secara efisien memenuhi tujuan langkah tersebut.

Misalnya, get_legal_moves(board, color)layak untuk desain algoritma:

get_legal_moves(board, color):
    for i,j in board_dimensions
        if piece_at i,j is of color
            if piece type is KNIGHT
                add the following to the next moves list:
                    location i+1 j+2, i-1 j+2... etc
            if piece type is rook
                add locations:....

Anda dapat melihat bahwa algoritme harus sangat tepat agar bermanfaat.

Ini memastikan beberapa hal: bahwa tujuan akan tercapai tanpa kesalahan, pertama dan terutama. Langkah-langkahnya sangat rinci dan dapat dieksekusi dengan cara mekanis dan langkah-langkahnya cukup kecil sehingga Anda dapat menyusun ulang langkah-langkah tersebut untuk meningkatkan efisiensi (kecepatan) yang digunakan untuk menyelesaikan tugas.

Ravi Annaswamy
sumber
Ini tampaknya merupakan dekomposisi algoritma top-down yang dinyatakan dalam pseudocode di setiap langkah.
Nathan Tuggy
0

Dari pengalaman saya, Pseudo-code selalu ditulis oleh personell fungsional (orang yang memiliki proses) sebagai cara untuk mengekspresikan aturan bisnis yang berlaku untuk suatu proses, modul atau sub-sistem.

Algoritma adalah seperangkat pernyataan logika difinitif untuk menyelesaikan tugas yang spesifik.

Michael Riley - AKA Gunny
sumber
0

Algoritma adalah sesuatu yang direpresentasikan dalam istilah matematika. Ini mencakup, analisis, implementasi dasar (bahkan yang dinyatakan dalam kode semu), pertimbangan kerumitan (analisis terbaik, rata-rata, dan terburuk) dll.

Kode pseudo adalah representasi program yang dapat dibaca manusia. Bahkan itu bisa digunakan untuk menggambarkan suatu algoritma.

sarat
sumber
-2

Pseudo berarti tunggal & kode dapat menjadi instruksi..di sini Pseudo-kode berarti pernyataan yang digunakan untuk memahami bahasa pemrograman komputer dengan mudah ... itu membantu dalam menganalisa kode pemrograman ... . dimana algoritma adalah langkah logis dari instruksi untuk menyelesaikan masalah.

gopiraj anupa
sumber
1
ini sepertinya tidak menawarkan sesuatu yang substansial atas poin yang dibuat dan dijelaskan dalam 10 jawaban sebelumnya
agas