Buat Diagram Alir C#

Diagram alur adalah alat visual yang ampuh untuk mewakili proses dan alur kerja. Dalam postingan blog ini, kita akan mempelajari cara membuat diagram alur di C#. Baik Anda sedang membangun aplikasi yang kompleks atau hanya perlu memvisualisasikan proses sederhana, membuat diagram alur dapat berguna saat Anda perlu berbagi informasi dengan audiens yang bersangkutan.

Mengapa Membuat Diagram Alir?

Membuat diagram alur bermanfaat karena berbagai alasan. Misalnya:

Dokumentasi Otomatis: Secara otomatis menghasilkan diagram alur berdasarkan kode atau file konfigurasi, memastikan dokumentasi terkini.

Diagram Dinamis: Buat diagram alur dinamis berdasarkan data yang dapat berubah secara real-time berdasarkan masukan pengguna atau variabel lainnya.

Integrasi: Sematkan diagram alur dalam aplikasi Anda, memungkinkan pengguna berinteraksi dan memanipulasinya langsung di dalam perangkat lunak.

Generator Diagram Alir - Instalasi C# API

Untuk mengikuti tutorial ini, Anda perlu mengonfigurasi Visual Studio IDE, dan mempersiapkan lingkungan dengan menginstal Conholdate.Total for .NET dengan perintah instalasi NuGet di bawah ini:

PM> NuGet\Install-Package Conholdate.Total

Membuat Flowchart di C#

Anda dapat mempelajari cara membuat diagram alur di C# dengan menambahkan beberapa bentuk dan konektor:

  • Mulailah dengan membuat skema untuk diagram alur.
  • Muat master untuk menambahkan bentuk menggunakan kelas Diagram.
  • Tambahkan bentuk dan konektor sesuai skema.
  • Menyusun tata letak diagram alur.
  • Terakhir, simpan flowchart sebagai file VSDX menggunakan metode Save.

Contoh kode di bawah ini menunjukkan cara membuat diagram alur di C#:

namespace CreateFlowchart
{
    class Program
    {
        static void Main(string[] args)
        {
            //skema untuk diagram yang akan dibuat
            Input diagramObject = new Input()
            {
                InputRectangles = new List<InputRectangle>() {
                        new InputRectangle() {
                            Name = "A",
                            Text = "Manager"
                        },
                        new InputRectangle() {
                            Name = "B",
                            Text = "Team Leader"
                        },
                        new InputRectangle() {
                            Name = "C",
                            Text = "Team Member"
                        },
                        new InputRectangle() {
                            Name = "D",
                            Text = "Team Member"
                        },
                        new InputRectangle() {
                            Name = "E",
                            Text = "Team Member"
                        }
                    },
                InputConnectors = new List<InputConnector>() {
                        new InputConnector() {
                            OriginShapeName = "A",
                            DestinationShapeName = "B"
                        },
                        new InputConnector() {
                            OriginShapeName = "B",
                            DestinationShapeName = "C"
                        },
                        new InputConnector() {
                            OriginShapeName = "B",
                            DestinationShapeName = "D"
                        },
                        new InputConnector() {
                            OriginShapeName = "B",
                            DestinationShapeName = "E"
                        }
                    }
            };

            Diagram diagram = new Diagram("BasicShapes.vss");
            Page page = diagram.Pages[0];

            Dictionary<string, long> shapeNames = new Dictionary<string, long>();

            //Menambahkan bentuk dan konektor dari skema
            foreach (var rectangle in diagramObject.InputRectangles)
            {
                Shape shape = new Shape();
                var shapeId = diagram.AddShape(shape, @"Rectangle", 0);
                shapeNames.Add(rectangle.Name, shapeId);
                shape = page.Shapes.GetShape(shapeId);
                shape.Text.Value.Add(new Txt(rectangle.Text));
            }


            foreach (var connector in diagramObject.InputConnectors)
            {
                var connectorId = diagram.AddShape(new Shape(), "Dynamic connector", 0);
                page.ConnectShapesViaConnector(shapeNames[connector.OriginShapeName],
                                                ConnectionPointPlace.Right,
                                                shapeNames[connector.DestinationShapeName],
                                                ConnectionPointPlace.Left,
                                                connectorId);
            }


            LayoutOptions layoutOptions = new LayoutOptions()
            {
                LayoutStyle = LayoutStyle.FlowChart,
                Direction = LayoutDirection.LeftToRight,
                SpaceShapes = 5,
                EnlargePage = true
            };

            diagram.Layout(layoutOptions);

            page.PageSheet.PrintProps.PrintPageOrientation.Value = PrintPageOrientationValue.Landscape;

            DiagramSaveOptions saveOptions = new DiagramSaveOptions()
            {
                SaveFormat = SaveFileFormat.Vsdx,
                AutoFitPageToDrawingContent = true
            };

            diagram.Save("output.vsdx", saveOptions);
        }
    }

    public class Input
    {
        public System.Collections.Generic.List<InputRectangle> InputRectangles { get; set; }
        public System.Collections.Generic.List<InputConnector> InputConnectors { get; set; }
    }

    public class InputRectangle
    {
        public string Name { get; set; }
        public string Text { get; set; }
    }

    public class InputConnector
    {
        public string OriginShapeName { get; set; }
        public string DestinationShapeName { get; set; }
    }
}

Proyek Demo

Anda dapat mengunduh proyek sampel yang sedang berjalan di pihak Anda untuk demonstrasi singkat fitur tersebut. Selain itu, hal ini dapat lebih ditingkatkan dengan memodifikasi bentuk, koneksi, konektor, dll. untuk menguji kasus penggunaan yang berbeda.

Lisensi Evaluasi Gratis

Anda mungkin mendapatkan lisensi sementara gratis untuk menguji API hingga kapasitas penuhnya.

Menyimpulkan

Membuat diagram alur secara terprogram dalam C# adalah cara ampuh untuk mengotomatiskan visualisasi proses dan alur kerja. Dengan bantuan kelas tercakup dan pemanggilan metode, Anda dapat dengan cepat membuat diagram alur yang dinamis dan interaktif. Kami harap tutorial ini memberi Anda dasar yang kuat untuk mulai membuat diagram alur Anda sendiri di C#. Jika ada ambiguitas, silakan hubungi kami di forum.

FAQ

Bisakah saya membuat diagram alur yang lebih kompleks dengan bentuk dan konektor tambahan?

Ya, Anda dapat membuat bentuk dan konektor sebanyak yang diperlukan untuk mewakili proses apa pun.

Bisakah saya mengekspor diagram alur ke gambar atau PDF?

Ya, ini mendukung ekspor diagram alur ke berbagai format, termasuk gambar dan PDF.

Bisakah saya menambahkan bentuk khusus ke diagram alur?

Ya, Anda dapat membuat bentuk khusus. Ini memungkinkan Anda membuat bentuk yang disesuaikan dengan kebutuhan spesifik Anda.

Lihat juga