diff --git a/tugas_individu_kode_morse_tanpa_spasi_final.py b/tugas_individu_kode_morse_tanpa_spasi_final.py deleted file mode 100644 index 4e42b83..0000000 --- a/tugas_individu_kode_morse_tanpa_spasi_final.py +++ /dev/null @@ -1,63 +0,0 @@ -# -*- coding: utf-8 -*- -"""TUGAS Individu Kode Morse Tanpa Spasi.FINAL - -Automatically generated by Colab. - -Original file is located at - https://colab.research.google.com/drive/1vfw0sfJfrg_jWdWWbvvaSPgnxQCvSK1T -""" - -# Daftar kode Morse standar -MORSE_CODES = { - "A": ".-", "B": "-...", "C": "-.-.", "D": "-..", "E": ".", "F": "..-.", - "G": "--.", "H": "....", "I": "..", "J": ".---", "K": "-.-", "L": ".-..", - "M": "--", "N": "-.", "O": "---", "P": ".--.", "Q": "--.-", "R": ".-.", - "S": "...", "T": "-", "U": "..-", "V": "...-", "W": ".--", "X": "-..-", - "Y": "-.--", "Z": "--..", "1": ".----", "2": "..---", "3": "...--", - "4": "....-", "5": ".....", "6": "-....", "7": "--...", "8": "---..", - "9": "----.", "0": "-----", ".": ".-.-.-", ",": "--..--", "?": "..--..", - "'": ".----.", "!": "-.-.--", "/": "-..-.", "(": "-.--.", ")": "-.--.-", - "&": ".-...", ":": "---...", ";": "-.-.-.", "=": "-...-", "+": ".-.-.", - "-": "-....-", "_": "..--.-", "\"": ".-..-.", "$": "...-..-", "@": ".--.-." -} - -def is_valid_morse_code(morse_code: str) -> bool: - # Validasi bahwa kode hanya berisi karakter . dan - - return all(char in ".-" for char in morse_code) - -def count_valid_insertions(morse_code: str) -> int: - # Jika kode hanya terdiri dari 1 karakter, hasilnya adalah 0 - if len(morse_code) <= 1: - return 0 - - # Fungsi rekursif untuk menghitung kemungkinan penyisipan spasi - def helper(index): - # Jika kita telah mencapai akhir kode, kembalikan 1 sebagai 1 kemungkinan valid - if index == len(morse_code): - return 1 - - # Hitung jumlah kemungkinan dari posisi ini - total = 0 - - # Pertimbangkan semua kemungkinan potongan yang valid - for i in range(index + 1, len(morse_code) + 1): - # Rekursi ke kemungkinan berikutnya - total += helper(i) - - return total - - # Hitung semua kemungkinan mulai dari indeks pertama - return helper(0) - 1 # Kurangi 1 karena kita tidak menghitung kemungkinan tanpa spasi sama sekali - -# Input kode Morse tanpa spasi -morse_code = input("Masukkan kode Morse tanpa spasi (maksimal 20 karakter): ") - -# Validasi panjang karakter -if len(morse_code) > 20: - print("Kode Morse terlalu panjang. Maksimal 20 karakter.") -elif not is_valid_morse_code(morse_code): - print("Kode Morse tidak valid. Pastikan hanya menggunakan karakter . dan -.") -else: - # Hitung jumlah total kemungkinan penyisipan spasi yang valid - result = count_valid_insertions(morse_code) - print(f"Jumlah total kemungkinan penyisipan spasi yang valid: {result}") \ No newline at end of file