Painlover

UAS searching dan sorting

Jan 23rd, 2023
212
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 11.39 KB | Source Code | 0 0
  1. #include <iostream>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <conio.h>
  5. #include <string.h>
  6. using namespace std;
  7.  
  8. int menu();
  9. void tampilan(int pil);
  10. void program(int pil);
  11. void sequential();
  12. void binary();
  13. void bubble();
  14. void selection();
  15. void insertion();
  16.  
  17. // CLEAR SCREEN
  18. void clear()
  19. {
  20. #if defined(__linux__) || defined(__unix__) || defined(__APPLE__)
  21.     system("clear");
  22. #endif
  23.  
  24. #if defined(_WIN32) || defined(_WIN64)
  25.     system("cls");
  26. #endif
  27. }
  28.  
  29. // COVER PROGRAM
  30. void cover()
  31. {
  32.     clear();
  33.     textcolor(10);
  34.     cout << "+=======================================================================+" << endl;
  35.     cout << "|               UAS PRAKTIKUM ALGORITMA DAN STRUKTUR DATA               |" << endl;
  36.     cout << "+-----------------------------------------------------------------------+" << endl;
  37.     cout << "|                        Nama  : Ibnu Dzumirrotin                       |" << endl;
  38.     cout << "|                        NIM   : 220010178                              |" << endl;
  39.     cout << "|                        Prodi : Sistem Komputer                        |" << endl;
  40.     cout << "+=======================================================================+" << endl;
  41.     cout << "Press enter to continue..." << endl;
  42.     getchar();
  43. }
  44.  
  45. // MENU PROGRAM
  46. int menu()
  47. {
  48.     int pil;
  49.     string ulang, utama;
  50.  
  51.     do
  52.     {
  53.         clear();
  54.         textcolor(4);
  55.         cout << "+=======================================================================+" << endl;
  56.         cout << "|                       =#=#=  Menu Utama  =#=#=                        |" << endl;
  57.         cout << "+-----------------------------------------------------------------------+" << endl;
  58.         cout << "|                         # |  SEARCHING  | #                           |" << endl;
  59.         cout << "| 1 |  SEQUENTIAL SEARCH                                                |" << endl;
  60.         cout << "| 2 |  BINARY SEARCH                                                    |" << endl;
  61.         cout << "+=======================================================================+" << endl;
  62.         cout << "|                          # |  SORTING  | #                            |" << endl;
  63.         cout << "| 3 |  BUBBLE SORT                                                      |" << endl;
  64.         cout << "| 4 |  SELECTION SORT                                                   |" << endl;
  65.         cout << "| 5 |  INSERTION SORT                                                   |" << endl;
  66.         cout << "+=======================================================================+" << endl;
  67.  
  68.         cout << "Masukan pilihan >> ";
  69.         cin >> pil;
  70.  
  71.         while (pil > 5)
  72.         {
  73.             cout << "Pilihan tidak tersedia, silahkan pilih kembali" << endl;
  74.             cout << "Masukan pilihan >> ";
  75.             cin >> pil;
  76.         }
  77.         do
  78.         {
  79.             if (pil == 1)
  80.             {
  81.                 tampilan(pil);
  82.                 program(pil);
  83.             }
  84.             else if (pil == 2)
  85.             {
  86.                 tampilan(pil);
  87.                 program(pil);
  88.             }
  89.             else if (pil == 3)
  90.             {
  91.                 tampilan(pil);
  92.                 program(pil);
  93.             }
  94.             else if (pil == 4)
  95.             {
  96.                 tampilan(pil);
  97.                 program(pil);
  98.             }
  99.             else if (pil == 5)
  100.             {
  101.                 tampilan(pil);
  102.                 program(pil);
  103.             }
  104.             else
  105.             {
  106.                 cout << "Program tidak ditemukan" << endl;
  107.             }
  108.  
  109.             cout << "\nIngin mengulang? (y/n) >> ";
  110.             cin >> ulang;
  111.  
  112.             while (ulang != "y" && ulang != "n")
  113.             {
  114.                 cout << "\nPilihan tidak tersedia, silahkan coba lagi" << endl;
  115.                 cout << "Ingin mengulang? (y/n) >> ";
  116.                 cin >> ulang;
  117.             }
  118.         } while (ulang == "y");
  119.  
  120.         cout << "kembali ke menu utama? (y/n) >> ";
  121.         cin >> utama;
  122.         while (utama != "y" && utama != "n")
  123.         {
  124.             cout << "Pilihan tidak tersedia, silahkan coba lagi" << endl;
  125.             cout << "kembali ke menu utama? (y/n) >> ";
  126.             cin >> utama;
  127.         }
  128.  
  129.     } while (utama == "y");
  130.  
  131.     cout << "Program selesai..." << endl;
  132.     textcolor(7);
  133.    
  134.     getchar();
  135.     return 0;
  136. }
  137.  
  138. // TAMPILAN
  139. void tampilan(int pil)
  140. {
  141.  
  142.     if (pil == 1)
  143.     {
  144.         clear();
  145.         textcolor(1);
  146.         cout << "======================================" << endl;
  147.         cout << "|      -== SEQUENTIAL SEARCH ==-     |" << endl;
  148.         cout << "======================================" << endl;
  149.     }
  150.     else if (pil == 2)
  151.     {
  152.         clear();
  153.         textcolor(1);
  154.         cout << "======================================" << endl;
  155.         cout << "|        -== BINARY SEARCH ==-       |" << endl;
  156.         cout << "======================================" << endl;
  157.     }
  158.     else if (pil == 3)
  159.     {
  160.         clear();
  161.         textcolor(1);
  162.         cout << "======================================" << endl;
  163.         cout << "|         -== BUBBLE SORT ==-        |" << endl;
  164.         cout << "======================================" << endl;
  165.     }
  166.     else if (pil == 4)
  167.     {
  168.         clear();
  169.         textcolor(1);
  170.         cout << "======================================" << endl;
  171.         cout << "|       -== SELECTION SORT ==-       |" << endl;
  172.         cout << "======================================" << endl;
  173.     }
  174.     else if (pil == 5)
  175.     {
  176.         clear();
  177.         textcolor(1);
  178.         cout << "======================================" << endl;
  179.         cout << "|       -== INSERTION SORT ==-       |" << endl;
  180.         cout << "======================================" << endl;
  181.     }
  182.     else
  183.     {
  184.         cout << "======================================" << endl;
  185.         cout << "|      -== TIDAK DITEMUKAN ==-       |" << endl;
  186.         cout << "======================================" << endl;
  187.     }
  188. }
  189.  
  190. // MENAMPILKAN PROGRAM
  191. void program(int pil)
  192. {
  193.  
  194.     if (pil == 1)
  195.     {
  196.         sequential();
  197.     }
  198.     else if (pil == 2)
  199.     {
  200.         binary();
  201.     }
  202.     else if (pil == 3)
  203.     {
  204.         bubble();
  205.     }
  206.     else if (pil == 4)
  207.     {
  208.         selection();
  209.     }
  210.     else if (pil == 5)
  211.     {
  212.         insertion();
  213.     }
  214. }
  215.  
  216. // BINARY SEARCH
  217. void sequential()
  218. {
  219.     int n, angka, banyak = 0;
  220.     bool ketemu;
  221.     int data[20];
  222.     int posisi[20];
  223.  
  224.     cout << "Masukan banyak data = ";
  225.     cin >> n;
  226.  
  227.     for (int i = 0; i < n; i++)
  228.     {
  229.         cout << "Masukan data ke " << i + 1 << " = ";
  230.         cin >> data[i];
  231.     }
  232.  
  233.     cout << "\nangka yang di input = ";
  234.     for (int i = 0; i < n; i++)
  235.     {
  236.         cout << data[i] << " ";
  237.     }
  238.  
  239.     cout << "\nMasukan angka yang dicari = ";
  240.     cin >> angka;
  241.  
  242.     for (int i = 0; i < n; i++)
  243.     {
  244.         if (data[i] == angka)
  245.         {
  246.             ketemu = true;
  247.             posisi[banyak] = i;
  248.             banyak++;
  249.         }
  250.     }
  251.     if (ketemu)
  252.     {
  253.         cout << "angka : " << angka << " ada : " << banyak;
  254.         cout << "\npada posisi ke : ";
  255.         for (int i = 0; i < banyak; i++)
  256.         {
  257.             cout << posisi[i] + 1 << " ";
  258.         }
  259.     }
  260.     else
  261.     {
  262.         cout << "angka" << angka << " tidak ditemukan";
  263.     }
  264. }
  265.  
  266. // BINARY SEARCH
  267. void binary()
  268. {
  269.     int n, angka, awal, akhir, tengah;
  270.     int data[20];
  271.  
  272.     cout << "Masukan banyak data = ";
  273.     cin >> n;
  274.  
  275.     for (int i = 0; i < n; i++)
  276.     {
  277.         cout << "Masukan data ke " << i + 1 << " = ";
  278.         cin >> data[i];
  279.     }
  280.  
  281.     cout << "\nangka yang di input = ";
  282.     for (int i = 0; i < n; i++)
  283.     {
  284.         cout << data[i] << " ";
  285.     }
  286.  
  287.     awal = 0;
  288.     akhir = n - 1;
  289.     tengah = (awal + akhir) / 2;
  290.  
  291.     cout << "\nMasukan angka yang dicari = ";
  292.     cin >> angka;
  293.  
  294.     while (awal <= akhir)
  295.     {
  296.         if (data[tengah] == angka)
  297.         {
  298.             cout << "angka : " << angka << " ada pada posisi: " << tengah + 1;
  299.             break;
  300.         }
  301.         else if (data[tengah] > angka)
  302.         {
  303.             akhir = tengah - 1;
  304.         }
  305.         else
  306.         {
  307.             awal = tengah + 1;
  308.         }
  309.  
  310.         tengah = (awal + akhir) / 2;
  311.     }
  312.  
  313.     if (awal > akhir)
  314.     {
  315.         cout << "angka : " << angka << " tidak ditemukan";
  316.     }
  317. }
  318.  
  319. // BUBBLE SORT
  320. void bubble()
  321. {
  322.     int n, y, param;
  323.     int data[100];
  324.    
  325.     cout << "Masukan banyak data = ";
  326.     cin >> n;
  327.    
  328.     for (int i = 0; i < n; i++)
  329.     {
  330.         cout << "Masukan data ke " << i + 1 << " = ";
  331.         cin >> data[i];
  332.     }
  333.    
  334.     cout << "\nangka yang di input >> ";
  335.     y = n - 2;
  336.  
  337.     for (int i = 0; i < n; i++)
  338.     {
  339.         cout << data[i] << " ";
  340.     }
  341.    
  342.     cout << "\nmulai proses sorting" << endl;
  343.  
  344.     while (y >= 0)
  345.     {
  346.         int index = 0;
  347.         while (index <= y)
  348.         {
  349.             if (data[index] > data[index + 1])
  350.             {
  351.                 param = data[index];
  352.                 data[index] = data[index + 1];
  353.                 data[index + 1] = param;
  354.             }
  355.             index++;
  356.         }
  357.        
  358.         for (int i = 0; i < n; i++)
  359.         {
  360.             cout << data[i] << " ";
  361.         }
  362.         cout << endl;
  363.         y--;
  364.     }
  365.    
  366.     cout << "\nhasil sortingnya adalah : " << endl;
  367.     for (int i = 0; i < n; i++)
  368.     {
  369.         cout << data[i] << " ";
  370.     }
  371. }
  372.  
  373. // SELECTION SORT
  374. void selection()
  375. {
  376.     int n, temp, min;
  377.     int data[20];
  378.  
  379.     cout << "Masukan banyak data = ";
  380.     cin >> n;
  381.  
  382.     for (int i = 0; i < n; i++)
  383.     {
  384.         cout << "Masukan data ke " << i + 1 << " = ";
  385.         cin >> data[i];
  386.     }
  387.  
  388.     cout << "\nangka yang di input >> ";
  389.     for (int i = 0; i < n; i++)
  390.     {
  391.         cout << data[i] << " ";
  392.     }
  393.  
  394.     cout << "\nmulai proses sorting";
  395.     for (int i = 0; i < n - 1; i++)
  396.     {
  397.         min = i;
  398.  
  399.         for (int j = i + 1; j < n; j++)
  400.         {
  401.             if (data[min] > data[j])
  402.             {
  403.                 min = j;
  404.             }
  405.         }
  406.  
  407.         temp = data[i];
  408.         data[i] = data[min];
  409.         data[min] = temp;
  410.  
  411.         cout << endl;
  412.         for (int i = 0; i < n; i++)
  413.         {
  414.             cout << data[i] << " ";
  415.         }
  416.     }
  417.  
  418.     cout << "\nhasil sortingnya adalah : " << endl;
  419.     for (int i = 0; i < n; i++)
  420.     {
  421.         cout << data[i] << " ";
  422.     }
  423. }
  424.  
  425. // INSERTION SORT
  426. void insertion()
  427. {
  428.     int n, j, key;
  429.     int data[20];
  430.  
  431.     cout << "Masukan banyak data = ";
  432.     cin >> n;
  433.    
  434.     for (int i = 0; i < n; i++)
  435.     {
  436.         cout << "Masukan data ke " << i + 1 << " = ";
  437.         cin >> data[i];
  438.     }
  439.  
  440.     cout << "\nangka yang di input >> ";
  441.     for (int i = 0; i < n; i++)
  442.     {
  443.         cout << data[i] << " ";
  444.     }
  445.    
  446.     cout << "\nmulai proses sorting";
  447.     for (int i = 1; i < n; i++)
  448.     {
  449.         key = data[i];
  450.         j = i - 1;
  451.         while (j >= 0 && data[j] > key)
  452.         {
  453.             data[j + 1] = data[j];
  454.             j--;
  455.         }
  456.         data[j + 1] = key;
  457.        
  458.         cout << endl;
  459.         for (int i = 0; i < n; i++)
  460.         {
  461.             cout << data[i] << " ";
  462.         }
  463.     }
  464.     cout << "\nhasil sortingnya adalah : " << endl;
  465.     for (int i = 0; i < n; i++)
  466.     {
  467.         cout << data[i] << " ";
  468.     }
  469. }
  470.  
  471. // MAIN PROGRAM
  472. int main()
  473. {
  474.     cover();
  475.     menu();
  476. }
Add Comment
Please, Sign In to add comment