Can I make tubular hole at the edge of the face without bool operations? I wonder if this process could be done some other way.

Lets say I want to get this result, but without boolean.


I could think of only one way and it is beveling. I make loopcut, then push one edge inside the cube and bevel it, also I used 2 more loopcuts to  limit the beveling, but it does not look circular. Do you have any trick for that?
Front row:


Subdivided Plane
Central faces selected: Loop Tools > Circle ( or Space Bar > Circle ) 
Delete appropriate faces


Back row:


Extrude
Bevel Modifier,  angle-based, (not catching curve), Segments:2 Profile:1
Subdivision Modifier




(Close-up of bevel result)