Ruang Belajar Terbuka E-Learning
P2 Pertemuan 2: Flowchart dan Pseudocode
Algoritma dan Pemrograman

Pertemuan 2: Flowchart dan Pseudocode

Pertemuan 2 dari 16

Pokok Bahasan

1

Pengertian dan konsep dasar flowchart

2

Simbol-simbol standar flowchart (ANSI/ISO)

3

Pengertian dan struktur pseudocode

Ringkasan Materi

Pertemuan ini bertujuan membekali mahasiswa dengan kemampuan merepresentasikan logika algoritma secara visual dan tekstual sebelum menulis kode program. Mahasiswa akan memahami peran flowchart dan pseudocode sebagai alat bantu perancangan yang menjembatani antara analisis masalah dan implementasi solusi dalam bahasa pemrograman. Kompetensi yang diharapkan mencakup kemampuan membaca, menganalisis, dan menyusun flowchart serta pseudocode dari suatu permasalahan komputasi sederhana.

Pembahasan diawali dengan pengenalan simbol-simbol standar flowchart meliputi terminal, proses, input/output, keputusan, dan konektor, beserta aturan penggunaannya dalam merepresentasikan tiga struktur dasar algoritma: sekuensial, percabangan, dan perulangan. Mahasiswa akan berlatih menerjemahkan deskripsi masalah ke dalam diagram alir yang sistematis dan mudah ditelusuri. Selanjutnya, materi beralih ke pseudocode sebagai alternatif representasi tekstual yang lebih ringkas dan mendekati sintaks bahasa pemrograman, namun tetap terbebas dari aturan ketat bahasa tertentu. Ditekankan pula konversi dua arah antara flowchart dan pseudocode, serta praktik menurunkan kode program dari keduanya melalui studi kasus perhitungan nilai akhir mahasiswa dan penentuan kelulusan.

Detail Materi

Pengertian dan Konsep Dasar Flowchart


Flowchart atau diagram alir adalah representasi grafis dari langkah-langkah penyelesaian suatu masalah yang disusun secara sistematis menggunakan simbol-simbol geometris yang saling terhubung oleh garis alir (flowline). Dalam konteks algoritma, flowchart berfungsi sebagai alat visualisasi yang mempermudah pemahaman terhadap alur logika program sebelum diimplementasikan ke dalam kode sumber. Setiap simbol dalam flowchart memiliki makna spesifik yang merepresentasikan jenis operasi tertentu, seperti proses perhitungan, pengambilan keputusan, atau proses input dan output data. Flowchart menjadi jembatan antara perancangan algoritma secara konseptual dan implementasi teknis dalam bahasa pemrograman, sehingga sangat penting dikuasai oleh mahasiswa yang mempelajari dasar-dasar pemrograman.


Secara historis, flowchart pertama kali diperkenalkan oleh Frank dan Lillian Gilbreth pada tahun 1921 sebagai alat dokumentasi proses dalam bidang teknik industri, kemudian diadopsi secara luas dalam dunia komputasi sejak era 1940-an. Terdapat beberapa jenis flowchart yang umum digunakan, antara lain flowchart sistem yang menggambarkan alur data dalam sistem secara keseluruhan, flowchart dokumen yang menunjukkan aliran dokumen dalam suatu organisasi, dan flowchart program yang mendeskripsikan urutan instruksi dalam sebuah program komputer. Pada mata kuliah Algoritma dan Pemrograman, fokus utama diberikan pada flowchart program karena relevansinya yang langsung terhadap proses pengembangan perangkat lunak dan penerjemahan algoritma menjadi kode program yang dapat dieksekusi oleh komputer.


Simbol-Simbol Standar dalam Flowchart


Simbol-simbol dalam flowchart telah distandardisasi oleh American National Standards Institute (ANSI) dan International Organization for Standardization (ISO) untuk memastikan keseragaman interpretasi di kalangan pengembang perangkat lunak. Simbol terminator berbentuk oval atau rounded rectangle digunakan untuk menandai awal (Start) dan akhir (End) dari suatu program atau subrutin. Simbol proses berbentuk persegi panjang merepresentasikan operasi komputasi atau aksi tertentu, seperti pemberian nilai kepada variabel atau eksekusi rumus matematika. Simbol keputusan berbentuk belah ketupat (diamond) digunakan untuk percabangan logika yang menghasilkan dua atau lebih jalur alternatif berdasarkan evaluasi kondisi tertentu, misalnya pengecekan apakah suatu nilai lebih besar dari nol. Simbol input/output berbentuk jajaran genjang menandakan operasi pembacaan data dari pengguna atau penulisan hasil ke layar. Simbol garis alir berupa panah menunjukkan arah eksekusi langkah-langkah algoritma. Simbol penghubung berbentuk lingkaran kecil berfungsi menyambung alur yang terputus karena keterbatasan halaman. Seluruh simbol ini membentuk bahasa visual yang universal dan tidak bergantung pada bahasa pemrograman tertentu, sehingga algoritma yang dirancang dengan flowchart dapat diimplementasikan dalam berbagai bahasa seperti Python, Java, atau C++.


Penting untuk dipahami bahwa penggunaan simbol-simbol flowchart harus konsisten dan mengikuti aturan standar agar tidak menimbulkan ambiguitas. Setiap flowchart harus memiliki tepat satu simbol Start dan setidaknya satu simbol End, semua jalur harus terhubung dengan garis alir yang jelas arahnya, dan setiap simbol keputusan wajib memiliki label kondisi yang eksplisit serta dua jalur keluar yang diberi keterangan "Ya" dan "Tidak". Kesalahan umum yang sering dilakukan pemula adalah mencampur arah garis alir, menggunakan simbol yang tidak tepat untuk jenis operasi tertentu, atau membuat percabangan keputusan tanpa mencantumkan kondisi evaluasi. Penguasaan notasi standar ini merupakan prasyarat penting sebelum mahasiswa melangkah ke tahap penulisan pseudocode dan implementasi kode program.


Pengertian dan Struktur Pseudocode


Pseudocode adalah deskripsi informal dari algoritma yang menggunakan struktur bahasa alami yang menyerupai bahasa pemrograman, namun tanpa terikat pada sintaksis spesifik bahasa tertentu. Istilah "pseudo" berasal dari bahasa Yunani yang berarti "semu" atau "tiruan", sehingga pseudocode dapat diartikan sebagai kode tiruan yang berfungsi menjembatani kesenjangan antara deskripsi algoritma dalam bahasa manusia dan implementasi dalam bahasa pemrograman. Pseudocode memungkinkan perancang algoritma untuk fokus pada logika penyelesaian masalah tanpa terganggu oleh detail teknis seperti deklarasi tipe data, aturan penulisan sintaks, atau manajemen memori. Keunggulan utama pseudocode terletak pada fleksibilitasnya yang tinggi, karena dapat ditulis dengan gaya yang disesuaikan dengan preferensi pengembang selama tetap menjaga kejelasan dan konsistensi notasi. Dalam dunia industri perangkat lunak, pseudocode sering digunakan sebagai dokumentasi desain yang memudahkan komunikasi antar anggota tim pengembang yang mungkin memiliki latar belakang bahasa pemrograman yang berbeda.


Struktur penulisan pseudocode umumnya mencakup beberapa komponen utama. Pertama, bagian deklarasi yang mendaftarkan variabel-variabel yang akan digunakan dalam algoritma. Kedua, bagian deskripsi yang berisi langkah-langkah algoritma yang ditulis secara sekuensial menggunakan kata kunci yang familiar seperti READ, WRITE, IF...THEN...ELSE, FOR...TO, WHILE...DO, dan REPEAT...UNTIL. Ketiga, penggunaan indentasi yang konsisten untuk menunjukkan struktur kendali seperti percabangan dan perulangan, mirip dengan praktik penulisan kode dalam bahasa pemrograman modern seperti Python. Tidak ada standar baku yang mengatur secara ketat format penulisan pseudocode, namun kebanyakan akademisi dan praktisi mengadopsi konvensi yang menyerupai sintaksis bahasa Pascal atau C. Yang terpenting adalah pseudocode harus dapat dibaca dan dipahami oleh manusia, bukan oleh mesin, sehingga kejelasan dan konsistensi menjadi prinsip utama dalam penulisannya.


Konversi antara Flowchart dan Pseudocode


Konversi dari flowchart ke pseudocode dan sebaliknya merupakan keterampilan fundamental dalam perancangan algoritma yang memungkinkan pengembang untuk menerjemahkan representasi visual menjadi deskripsi tekstual atau sebaliknya. Proses konversi flowchart ke pseudocode dilakukan dengan menelusuri setiap simbol flowchart secara berurutan mengikuti arah garis alir, kemudian menuliskan setiap operasi menggunakan notasi pseudocode yang sesuai. Simbol terminator Start menjadi judul atau deklarasi awal prosedur, simbol proses menjadi baris instruksi sederhana, simbol keputusan menjadi struktur IF...THEN...ELSE dengan jalur "Ya" sebagai blok THEN dan jalur "Tidak" sebagai blok ELSE, serta simbol input/output menjadi instruksi READ atau WRITE. Untuk struktur perulangan, pola alur dalam flowchart yang membentuk siklus kembali ke titik sebelumnya dikonversi menjadi WHILE...DO apabila pengecekan kondisi dilakukan di awal, atau REPEAT...UNTIL apabila pengecekan kondisi dilakukan di akhir.


Konversi dari pseudocode ke flowchart mengikuti prinsip sebaliknya, yaitu memetakan setiap baris pseudocode ke simbol flowchart yang sesuai. Baris deklarasi variabel dapat diabaikan dalam flowchart karena fokus flowchart adalah pada alur logika, bukan deklarasi. Instruksi READ dan WRITE menjadi simbol jajaran genjang input/output, instruksi penugasan dan perhitungan menjadi simbol persegi panjang proses, dan struktur kendali IF...THEN...ELSE diterjemahkan menjadi simbol belah ketupat keputusan dengan dua jalur keluar. Kemampuan melakukan konversi dua arah ini sangat bermanfaat dalam proses debugging algoritma, karena kesalahan logika seringkali lebih mudah terdeteksi dalam satu bentuk representasi dibandingkan bentuk lainnya. Mahasiswa disarankan untuk berlatih mengonversi algoritma sederhana secara dua arah hingga mencapai tingkat kefasihan yang memadai sebelum menangani permasalahan algoritmik yang lebih kompleks.


Contoh Kasus: Algoritma Menentukan Bilangan Genap atau Ganjil


Untuk mengilustrasikan penerapan flowchart dan pseudocode secara konkret, perhatikan algoritma sederhana berikut: sebuah program menerima sebuah bilangan bulat dari pengguna, kemudian menentukan apakah bilangan tersebut termasuk bilangan genap atau bilangan ganjil, dan menampilkan hasilnya ke layar. Logika dasar yang digunakan adalah operasi modulus, yaitu menghitung sisa pembagian bilangan tersebut dengan angka 2. Apabila sisa pembagian bernilai 0, maka bilangan tersebut genap; sebaliknya, apabila sisa pembagian bernilai 1, maka bilangan tersebut ganjil. Algoritma ini merupakan contoh klasik yang melibatkan tiga komponen fundamental pemrograman: input (membaca bilangan), proses (operasi modulus), dan output (menampilkan hasil), serta struktur percabangan (keputusan berdasarkan kondisi). Dengan memahami algoritma sederhana ini, mahasiswa dapat mengembangkan pemahaman untuk algoritma yang lebih kompleks seperti validasi bilangan prima, pencarian faktor persekutuan terbesar, atau pengurutan data.


Berikut adalah representasi algoritma tersebut dalam bentuk pseudocode yang menggunakan konvensi penulisan akademik dengan kata kunci berbahasa Inggris yang lazim digunakan di lingkungan pemrograman:


PROGRAM CekGenapGanjil
  DEKLARASI
    bilangan : integer
    hasil    : string

  DESKRIPSI
    WRITE "Masukkan sebuah bilangan bulat: "
    READ bilangan

    IF bilangan MOD 2 = 0 THEN
      hasil ← "Genap"
    ELSE
      hasil ← "Ganjil"
    ENDIF

    WRITE "Bilangan ", bilangan, " adalah bilangan ", hasil
END PROGRAM


Algoritma di atas menunjukkan bagaimana struktur pseudocode dibangun secara hierarkis dengan indentasi yang jelas. Blok DEKLARASI digunakan untuk mendaftarkan variabel dan tipe datanya, sementara blok DESKRIPSI memuat urutan instruksi yang dieksekusi dari atas ke bawah. Operator (panah kiri) merupakan notasi penugasan yang lazim dalam pseudocode, setara dengan tanda sama dengan dalam kebanyakan bahasa pemrograman. Struktur IF...THEN...ELSE...ENDIF menunjukkan percabangan dengan dua alternatif yang saling eksklusif. Apabila algoritma ini dituangkan dalam bentuk flowchart, akan terdapat simbol terminator Start di bagian atas, simbol input untuk membaca bilangan, simbol proses untuk menghitung modulus, simbol keputusan berbentuk belah ketupat untuk mengevaluasi kondisi sisa pembagian = 0, dua simbol output terpisah untuk jalur "Ya" dan "Tidak", dan simbol terminator End di bagian bawah.


Kelebihan, Kekurangan, dan Penerapan dalam Pengembangan Perangkat Lunak


Baik flowchart maupun pseudocode memiliki kelebihan dan kekurangan masing-masing yang menentukan kesesuaian penggunaannya dalam berbagai konteks pengembangan perangkat lunak. Flowchart unggul dalam hal visualisasi karena menyajikan alur logika dalam bentuk grafis yang intuitif, memudahkan identifikasi jalur eksekusi alternatif, serta membantu mendeteksi unreachable code atau logika yang tidak terhubung. Flowchart sangat efektif digunakan dalam presentasi dan dokumentasi untuk audiens non-teknis, serta dalam sesi brainstorming desain algoritma bersama tim. Namun, kelemahan utama flowchart adalah ukurannya yang dapat menjadi sangat besar dan sulit dikelola untuk algoritma yang kompleks, membutuhkan ruang kertas atau layar yang luas, serta proses penggambaran ulang yang merepotkan saat terjadi perubahan desain. Di sisi lain, pseudocode unggul dalam hal efisiensi penulisan karena dapat dibuat dan dimodifikasi dengan cepat menggunakan editor teks biasa, mudah dikelola dalam sistem kendali versi seperti Git, serta lebih dekat ke kode program akhir sehingga transisi ke implementasi menjadi lebih mulus. Kelemahan pseudocode adalah ketiadaan standar baku yang dapat menimbulkan inkonsistensi interpretasi antar pengembang yang berbeda, serta tidak seintuitif flowchart dalam menggambarkan alur yang kompleks secara visual.


Dalam praktik industri pengembangan perangkat lunak modern, kedua alat ini digunakan secara komplementer. Flowchart sering digunakan pada tahap awal desain sistem untuk memodelkan proses bisnis dan alur kerja tingkat tinggi, sementara pseudocode digunakan pada tahap desain rinci untuk mendokumentasikan logika algoritma sebelum penulisan kode. Mahasiswa yang menguasai kedua teknik representasi algoritma ini akan memiliki fondasi yang kokoh untuk mengembangkan kemampuan pemecahan masalah komputasional (computational thinking), yang merupakan kompetensi inti tidak hanya dalam pemrograman tetapi juga dalam berbagai disiplin ilmu yang melibatkan analisis data dan otomatisasi proses. Kemampuan untuk memilih representasi yang tepat sesuai konteks permasalahan merupakan keterampilan yang akan terus berkembang seiring bertambahnya pengalaman dalam merancang dan mengimplementasikan algoritma.

Presensi

0 sesi

Belum ada sesi presensi untuk pertemuan ini.

Tugas Kelas

0 tugas

Belum ada tugas untuk mata kuliah ini.